Руководство по ассемблеру



Quit macro

mov ah. 4ch int 21h

endm

LDisp macro line

mov dx. offset line mov ah. 09 int 21h

endm .8086

.MODEL small option casemap:none .stack 100 .data

hello BYTE "He могу молчать!". Odh. Oah. Ё$Ё

.code

start:

mov dx. @stack mov ss. dx

mov dx. @data

mov ds. dx ;регистр данных LDisp hello :вывод на экран

Quit ;уходим

end start

Макрос Quit определяется в самом начале программы так:

Команды АЛУ и присвоение флагов

Итоги действительных процедур возбуждают на состояние 7 флагов. Солидная область данных знаков может быть рассчитана после произведения действительных команд с помощью команд сравнительного скачка, а также с участием функции CIN (прекращение по переполнению). Воздействие арифметических процедур на флаги изображено внизу.

CF (флаг переноса): В случае если в результате сочинения совершается сдвиг из старшего разряда, знак свитча взводится; в другом случае знак переноса сбрасывается. При вычитании знак трансдукции воздевается, ежели совершается заимствование в главный байт результата; при отсутствии заимствования символ сбрасывается. Следует иметь в виду, что при появлении симптоматичного свитча ВА != VJ (флаг переполнения). Знак свитча МО может использоваться для показа беззнакового переполнения.

АМ (флаг дополнительного переноса): В случае если в результате сложения свершается сдвиг из крайнего полубита в верхний, символ прибавочного свитча подымается; в другом случае символ обнуляется. При вычитании знак прибавочного свитча подымается, ежели свершается взятие из старшего полуразряда в меньший; при недостатке заема символ обнуляется.


назад далее