Отдельные инструкции выделены цветом. Малиновым показаны данные
Данная программа работает при её размещении по смещению 10016
BB 11 01, B9 0D 00, B4 0E, 8A 07 команды присвоения значений регистрам
43 инкремент регистра BX
CD 10, CD 20 вызов программных прерываний 1016 и 2016
E2 F9 команда для организации цикла
исходный код на ассемблере:
org 100h ; com программа DOS размещается по смещению 0x100 байт от начала сегмента памяти.
mov bx, 111h ; положить в bx смещение строки HW
mov cx, 0Dh ; положить в cx длину строки HW
mov ah, 0Eh ; положить в ah номер функции прерывания 10h
label:
mov al, ; помещаем байт в памяти по адресу хранящемуся в bx в al
inc bx ; увеличиваем значение смещения символа, который требуется напечатать
int 10h ; вызов прерывания 10h
loop label ; если cx≠0, то перейти к метке label и уменьшит cx на 1.
int 20h ; выйти в DOS
HW db 'Hello, World!' ; сама строка, которую требуется напечатать, её смещение 111h ; относительно начала сегмента памяти
|