Ассемблер макросредства - Assembler
Формулировка задачи:
Листинг программы
- Zamena macro a, b, addr
- local m1, pass, exit
- push si cx ax
- mov bx, addr
- mov cl, [bx]
- mov ch, 0
- jcxz exit
- mov al, a
- mov ah, b
- loop1: inc bx
- cmp [bx], al
- jne cont
- mov [bx], ah
- cont: loop loop1
- endm
- data segment
- array db 7,1,2,3,4,5,6,7
- a db 3
- b db 25
- data ends
- code segment
- assume cs:code, ds:data
- start: mov ax,data
- mov ds,ax
- lea bx, array
- Zamena a, b, bx
- mov si,4
- mov dl, array[si]
- mov ah,02h
- int 21h
- mov ah,4ch
- int 21h
- code ends
- end start
Решение задачи: «Ассемблер макросредства»
textual
Листинг программы
- Zamena macro a, b, addr
- local loop1, cont, exit
- push si cx ax
- mov bx, addr
- mov ch, 0
- mov cl, [bx]
- jcxz exit
- mov al, a
- mov ah, b
- loop1: inc bx
- cmp [bx], al
- jne cont
- mov [bx], ah
- cont:
- loop loop1
- exit:
- pop ax, cx, si
- endm
- data segment
- array db 7,1,2,3,4,5,6,7
- a db 3
- b db 25
- data ends
- code segment
- assume cs:code, ds:data
- start: mov ax,data
- mov ds,ax
- mov bx, offset array
- Zamena a, b, bx
- mov si,4
- mov dl, array[si]
- mov ah,4ch
- int 21h
- code ends
- end start
Объяснение кода листинга программы
Список действий, которые происходят в коде:
- Макроопределение Zamena с тремя аргументами (a, b, addr) и тремя локальными переменными (loop1, cont, exit).
- Код цикла, который выполняется до тех пор, пока значение байта в текущей ячейке массива не станет равным значению переменной a.
- Сохранение результата в переменной ah.
- Переход к следующей ячейке массива.
- Выход из цикла и возврат в основную программу.
- Загрузка сегмента данных в регистр ax.
- Загрузка сегмента данных в регистр ds.
- Загрузка адреса массива в регистр bx.
- Вызов макроса Zamena с аргументами a, b и bx.
- Переменная si устанавливается равной 4.
- Переменная dl загружается значением элемента массива с индексом 4.
- Выполнение интеррутации int 21h.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д