Пересылка элементов из одного массива в другой - Assembler
Формулировка задачи:
Задание:
Написать программу пересылки массива байтов длиною 256 элементов к другому массиву такой же длины, используя все возможные режимы адресации.
Решение задачи: «Пересылка элементов из одного массива в другой»
textual
Листинг программы
; FASM code
; Описываем макросы ==========================
macro Printf [text]
{ mov ah,9
mov dx,text
int 21h }
macro Exit
{ xor ax,ax
int 16h
int 20h }
;=== НАЧАЛО КОДА =============================
org 100h
jmp start
mess0 db 'Hello World!$'
start:
Printf mess0 ; зовём макросы
Exit
Объяснение кода листинга программы
- Описываем макросы
В данном блоке кода описываются два макроса:
PrintfиExit.Printfиспользуется для вывода текста на экран. Он перемещает значение регистраahв буфер вывода, затем перемещает значение регистраdxв этот же буфер. Затем происходит интеркаляция с помощьюint 21h, что выводит содержимое буфера на экран.Exitиспользуется для завершения программы. Он перемещает значение регистраaxв ноль, затем происходит интеркаляция с помощьюint 16h, что перенаправляет выполнение в BIOS, иint 20h, что завершает работу компьютера.
- org 100h Устанавливает точку входа в программу на 100h.
- jmp start
Происходит переход к метке
start, где начинается выполнение программы. - Printf mess0
Вызывается макрос
Printfс аргументомmess0, который содержит строкуHello World!$. - Exit
Вызывается макрос
Exit, который завершает работу программы.