Адресация памяти по базе со сдвигом - Assembler
Формулировка задачи:
Необходимо составить свою фамилию, имя, отчество из массива данных, представляющего собой алфавит, используя косвенные методы адресации. Для вывода результата воспользоваться функцией 09h двадцать первого прерывания DOS. Пример вывода текстовой строки приведен в приложении.
shumko sergey vladimirovich
Решение задачи: «Адресация памяти по базе со сдвигом»
textual
Листинг программы
masm .model small .data alp_e db 0Dh,0Ah,'abcdefghijklmnopqrstuvwxyz$' ch1 db 5 dup(?) db "$" .code start: mov ax,@data mov ds,ax mov al,alp_e[9] mov ch1[0],al mov dx,offset ch1 mov ah,09h int 21h mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
- Объединение команд и данных в одном файле.
- Используется модель
small
для формирования сегментов данных и кода. - Сегмент данных начинается с адреса 0100h.
- Переменная
alp_e
объявлена как строка, содержащая 16 символов, включая завершающий символ доллара. - Переменная
ch1
объявлена как строка, содержащая 6 символов, включая завершающий символ доллара. - Код программы начинается с метки
start
. - Команда
mov ax,@data
устанавливает сегмент данных в регистре AX. - Команда
mov ds,ax
устанавливает сегмент данных в регистре DS. - Команда
mov al,alp_e[9]
загружает в регистр AL девятый символ из строкиalp_e
. - Команда
mov ch1[0],al
записывает в первый элемент строкиch1
значение регистра AL. - Команда
mov dx,offset ch1
устанавливает сегмент и смещение строкиch1
в регистре DX. - Команда
mov ah,09h
устанавливает код функции 9 в регистре AH. - Команда
int 21h
вызывает функцию 9, которая выводит на экран содержимое регистра DX. - Команда
mov ah,4Ch
устанавливает код функции 4Ch в регистре AH. - Команда
mov al,00h
устанавливает значение регистра AL равным 0. - Команда
int 21h
вызывает функцию 4Ch, которая завершает выполнение программы. - Значение 09h в регистре AH представляет функцию вывода символа на экран.
- Значение 4Ch в регистре AH представляет функцию завершения работы программы.
- Значение 00h в регистре AL представляет символ, который выводится на экран.
- Значение 0100h представляет начальный адрес сегмента данных в 16-битном коде.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д