Вывод строки заканчивается неудачей - Assembler
Формулировка задачи:
.model tiny
.code
org 100h
main:
mov dx, offset string
mov ah, 09h
int 21h
int 20h
string db 'lol kek chebureck$'
end mainРешение задачи: «Вывод строки заканчивается неудачей»
textual
Листинг программы
.MODEL SMALL .STACK 100h .DATA HelloMessage DB 'lol kek chebureck$',13,10,'$' .CODE START: mov ax,@data mov ds,ax mov ah,9 mov dx,OFFSET HelloMessage int 21h mov ah,4ch int 21h END START
Объяснение кода листинга программы
- Установка модели памяти на малую (SMALL).
- Установка стека на 100 байт.
- Объявление строки «HelloMessage» в сегменте данных (D) с начальным адресом в 1000000h (1000 байт).
- Код программы начинается с метки «START».
- Перемещение регистровой пары ax в сегмент данных (D) с помощью команды mov ax,@data.
- Перемещение сегмента данных (D) в регистровую пару ds с помощью команды mov ds,ax.
- Установка регистра ah на 9 для выполнения функции вывода в консоль с помощью команды mov ah,9.
- Перемещение смещения строки «HelloMessage» в регистровую пару dx с помощью команды mov dx,OFFSET HelloMessage.
- Выполнение функции вывода в консоль с помощью команды int 21h.
- Установка регистра ah на 4ch для завершения работы программы с помощью команды mov ah,4ch.
- Выполнение функции окончания работы программы с помощью команды int 21h.