Пересылка элементов из одного массива в другой - 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
, который завершает работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д