Трансляция всех модификаций команд add и cmp — страница 2

  • Просмотров 7223
  • Скачиваний 403
  • Размер файла 20
    Кб

Если язык ассемблера включает средства макрорасширений, то макроп- роцессор реализуется различными способами. Он может быть добавлен к ас- семблеру как препроцессор для выполнения просмотра исходного текста пе- ред первым проходом ассемблера. В результате препроцессирования полу- чается программа на языке ассемблера, на содержащая макросов. При этом тексты макроопределений, если они есть в исходной программе, сохраняют- ся, а

вместо макровызовов подставляются ассемблерные команды из макрооп- ределений. Возможно также объединение макропроцессора с первым проходом ассемблера, что сокращает время трансляции, но удлиняет текст ассемблера.

;█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ ;█ ----- ТРАНСЛЯЦИЯ ВСЕХ МОДИФИКАЦИЙ КОМАНДЫ ADD ----- █

;█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ .MODEL TINY .CODE JUMPS ORG 100h begin: jmp general

;┌──────────────────────────────────────┐ ;│ Макрос вывода на экран строки stirng │ ;└──────────────────────────────────────┘ Wrt macro string mov ah,9 ; Функция вывода строки lea dx,string ; Загружаем адрес строки int 21h ;

Вызов прерывания DOS endm ;┌──────────────────────────────┐ ;│ Основная процедура программы │ ;└──────────────────────────────┘ general proc near push cs ; Все push cs ; сегменты push cs ; приравниваем pop ds ; к сегменту pop es ; кода pop ss ; (необходимо для строковых операций) Wrt