с использованием компилятора мы написали.
. Итак, первую прогу с использованием компилятора мы написали. Теперь напишем вторую. Набиваем ее исходный текст, и компилим: assume CS:SUXXX, ES:SUXXX
SUXXX segment org 100h
MAIN proc lea bp,ABC mov AH,13h mov AL,3 xor bh,bh mov bl,07h mov cx,16d xor DX,DX int 10h int 20h MAIN endp
ABC db 'H',0Ah,'e',0Bh,'l',0Dh,'l',0Ch db 'o',0Bh,',',0Ah,' ',0Ah,'W',09h db 'o',08h,'r',07h,'l',06h,'d',05h db '!',02h,'!',02h,'!',02h
SUXXX ends
end MAIN
Итак, в этой программе мы использовали функцию 13h прерывания 10h (INT 10h, AH=13h).
Вот ее описание: [INT 10h, ФУНКЦИЯ 13h] - записывает на экран символьную строку, начиная от указанной позиции.
ВХОДНЫЕ ПАРАМЕТРЫ:
AH = 13h;
AL - код формата(0-3):
AL=0, формат строки{симв., симв.,..., симв.} и курсор не перемещается,
AL=1, формат строки{симв., симв.,..., симв.} и курсор перемещается,
AL=2, формат строки{симв., атр.,...,симв., атр.} и курсор не перемещается,
AL=3, формат строки{симв., атр.,...,симв., атр.} и курсор перемещается;
BH - страница дисплея;
BL - атрибут (для режимов AL=0, AL=1);
CX - длина строки;
DX - позиция курсора для записи строки;
ES:BP - указатель строки.
ВЫХОДНЫЕ ПАРАМЕТРЫ: отсутствуют.
А еще мы использовали команду LEA, которая загружает в регистр адрес (смещение), с которого у нас начинается блок данных.