Из двух строк "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 выполняется следующая последовательность действий:

  1. Устанавливаются сегменты данных и стека.
  2. Определяются три строки: ABCDE, 12345 и **************$.
  3. Задается начальный адрес для регистров SI и BX, которые будут использоваться для индексации строк.
  4. Задается конечный адрес для регистра DI, который будет использоваться для записи результата.
  5. Задается счётчик повторений (5), который будет использоваться в цикле.
  6. Начинается цикл по пять раз, где каждый раз считывается символ из строки string2 и записывается в строку string3.
  7. Завершается работа программы: выводится сообщение об успешном завершении работы.

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы