Программирование на Ассемблере под DOS


Задача 6


. Итак, первую прогу с использованием компилятора мы написали. Теперь напишем вторую. Набиваем ее исходный текст, и компилим: 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, которая загружает в регистр адрес (смещение), с которого у нас начинается блок данных.




Начало  Назад  Вперед



Книжный магазин