Ассемблер МП Intel 8080 позволяет предусмотреть условное ассемблирование с помощью псевдоопераций IF и ENDIF; в МП Motorola 6800 такая возможность не предусмотрена В псевдооперации IF выражение записывается в соответствии с изложенными правилами. Евли значение соответствующего выражения на этапе ассемблирования оказывается не равным нулю, то ассемблер включит в результирующую программу операторы, заключенные между псевдоопераниями IF и END1F Если выражение оказывается равным нулю, то соответствующие операторы в программу не включаются Приведем несколько характерных примеров. .Пример 1. Обратный или дополнительный код
СМА
IF TWOS
INR А ; Прибавить 1 для получения дополнительного кода ENDIF
Если переменная TWOS = ОД то ассемблер включит в программу только команду СМА, которая формирует обратный код Если TWO^-O, ассемблер включит также команду INR А, выполнение которой превратит обратный код в дополнительный.С помощью одной и той же ассемблерной программы мбжно выполнить арифметические операции в обратном или дополнительном коде. Влбор режима осуществляется с помощью переменной TWOS, значение'которой устанавливается перед ассемблированием.
Пример 2. 8- или 16-битное сложение.
IF L8; 8-битное сложение
LDA ОР1
MOV В,А
LDA ОР2
ADD В
STA R£S
ENDIF
IF L16 ; 16 битное-сложеаие
LHLD ОР1
XCHG
LHLD OP2
DAD
SHLD RES ENDIF
Данная программа позволяет выбрать 8- или 16-битный вариант сложения в зависимости от значений переменных L8 и L16. Если L8 Ф 0 и L16 = 0, ассемблер странслирует команды, реализующие 8-битное сложение. Если L8 = 0 и L16 Ф 0, будут странслированы команды, обеспечивающие сложение 16-битных чисел.
Программистам не рекомендуется злоупотреблять средствами условного ассемблирования. Их использование делает программы более запутанными и усложняет их отладку. Лучше написать две отдельные программы для двух различных случаев, чем прибегать к сложным средствам условного ассемблирования. Средства условного ассемблирования целесообразно использовать для облегчения отладки в первоначальных вариантах программ.