Операторы IF для условного
Фиг. 6. 5 Операторы IF для условного ассемблирования
Рассмотрим еще один пример, чтобы познакомиться с некоторыми
другими вариантами использования ассемблирования по условию. На
Фиг. 6.6 показано применение другого условного оператора - IFB, а
также использование вложенных условных операторов. Макрокомандой
здесь является FLD - команда загрузки сопроцессора 8087. Для
транслирования этой команды требуется несколько условных
операторов, так как она может применяться в следующих вариантах:
FLD
FLD 1
FLD короткое_вещественное
FLD длинное_вещественное
FLD временное_вещественное
Поле операнда макрокоманды FLD может быть пустым, содержать
константу, или четырехбайтовую, восьмибайтовую либо десятибайтовую
переменную. Макрокоманда должна распознать каждый из перечисленныз
случаев и сгенерировать правильный программный код. (все эти типы
данных рассмотрены очень подробно в гл.7.)
Оператор IFB проверяет наличие операнда. Если операнд
отсутствует, то ассемблер генерирует соответствующий этому случаю
программный код, так как оператор IFB вырабатывает значение
"истина". Это иллюстрирует первый вызов макрокоманды, когда
генерируется код
DB 09BH,0D9H,0C 1H
Оператор EXITM, содержащийся в этой части условного оператора
IF, реализует выход из макрокоманды. Каждый раз, когда при
расширении макрокоманды ассемблеру встречается этот оператор,
расширение заканчивается, как если бы встретился ENDM. В данном
случае ассемблер пропускает оставшуюся часть макроопределения. При
таком выходе из макрокоманды в ассемблерном листинге появляется
предупреждающее сообщение "Open conditionals:1" ("Незавершенные
условные операторы: 1"). Оно предупреждает вас, что ассемблер не Mincho"'> Microsoft (R) Macro Assembler Version 5.00 4/2/89 16:06:47
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий