Из двух строк "ABCDE" и "12345" сделать одну - "A1*B2*C3*D4*E5" - Assembler
Формулировка задачи:
Нужно из двух строк ‘ABCDE’ и ‘12345’ сделать одну - ‘A1*B2*C3*D4*E5’. Помогите, пожалуйста, решить!
Решение задачи: «Из двух строк "ABCDE" и "12345" сделать одну - "A1*B2*C3*D4*E5"»
textual
Листинг программы
.model small .386 .data string1 db "ABCDE" string2 db "12345" string3 db "**************$" .stack db 255 dup (?) .code start: mov ax,@data mov ds,ax mov es,ax mov si,offset string1 mov bx,offset string2 mov di,offset string3 mov cx,5 a0: movsb mov al,[bx] stosb inc bx inc di loop a0 mov ah,09h lea dx,string3 int 21h mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
В этом коде на языке Assembler выполняется следующая последовательность действий:
- Устанавливаются сегменты данных и стека.
- Определяются три строки:
ABCDE
,12345
и**************$
. - Задается начальный адрес для регистров SI и BX, которые будут использоваться для индексации строк.
- Задается конечный адрес для регистра DI, который будет использоваться для записи результата.
- Задается счётчик повторений (5), который будет использоваться в цикле.
- Начинается цикл по пять раз, где каждый раз считывается символ из строки string2 и записывается в строку string3.
- Завершается работа программы: выводится сообщение об успешном завершении работы.