ВУЗ:
Составители:
Рубрика:
6.8 Команда сравнения — компарации
Здесь трудно что-либо добавить к тем комментариям, которые есть
в таблице 5. Сравнение производится на основе операции вычитания,
но разность нигде не фиксируется, потому что нужна не она, а ее
признаки: был ли заем? нулевой ли результат? и тому подобное —
которые заносятся во флажковые биты.
Ассемблер команды (пример):
CMP AX,[1CFO].
И в заключение главы — команда инверсии:
а) Ассемблер: NOT dst. Комментарий: dst:=-<dst>.
б) Машинный код операции:
Необходимо отметить, что эта команда флажки «не трогает». Так
реализовано преднамеренно, так как часто бывает необходимо
проинвертировать что-то, при этом состояние флажков — сохранить.
Естественно, что бывает и наоборот, когда нужно проинвертировать и
одновременно в соответствии с проинвертированным результатом
взвести флажки. Для этих целей используют команду XOR dst, FF, если
нужно инвертировать байт, или XOR dst, FFFF, если — слово. Суть
действия этой команды изложена в примерах в п. 7 для команды XOR.
7 Команды ветвления и переходов
7.1 Команды ветвления
Это важнейшая группа команд, позволяющая принимать решение.
Все команды, которые до сих пор рассматривались, выполняли действие.
А вот возможностью принять решение по результатам каких-либо
действий обладают только команды ветвлений. Ветвление —это переход
(скачок) на указанное в команде перехода место, если выполнилось
указанное в команде условие.
К примеру, команда «jump no Z 5CЗF» в переводе на русский язык
означает: прыгнуть по адресу 5CЗF, если нет Z (ассемблер: JNZ 5СЗF).
Она осуществляет прыжок на адрес 5СЗF, то есть следующая команда
будет выбираться по адресу 5СЗF, если флаг Z = 0. В противном случае
45
6.8 Команда сравнения — компарации Здесь трудно что-либо добавить к тем комментариям, которые есть в таблице 5. Сравнение производится на основе операции вычитания, но разность нигде не фиксируется, потому что нужна не она, а ее признаки: был ли заем? нулевой ли результат? и тому подобное — которые заносятся во флажковые биты. Ассемблер команды (пример): CMP AX,[1CFO]. И в заключение главы — команда инверсии: а) Ассемблер: NOT dst. Комментарий: dst:=-. б) Машинный код операции: Необходимо отметить, что эта команда флажки «не трогает». Так реализовано преднамеренно, так как часто бывает необходимо проинвертировать что-то, при этом состояние флажков — сохранить. Естественно, что бывает и наоборот, когда нужно проинвертировать и одновременно в соответствии с проинвертированным результатом взвести флажки. Для этих целей используют команду XOR dst, FF, если нужно инвертировать байт, или XOR dst, FFFF, если — слово. Суть действия этой команды изложена в примерах в п. 7 для команды XOR. 7 Команды ветвления и переходов 7.1 Команды ветвления Это важнейшая группа команд, позволяющая принимать решение. Все команды, которые до сих пор рассматривались, выполняли действие. А вот возможностью принять решение по результатам каких-либо действий обладают только команды ветвлений. Ветвление —это переход (скачок) на указанное в команде перехода место, если выполнилось указанное в команде условие. К примеру, команда «jump no Z 5CЗF» в переводе на русский язык означает: прыгнуть по адресу 5CЗF, если нет Z (ассемблер: JNZ 5СЗF). Она осуществляет прыжок на адрес 5СЗF, то есть следующая команда будет выбираться по адресу 5СЗF, если флаг Z = 0. В противном случае 45
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »