Архитектура микропроцессорной системы. Состав машинных команд и основы программирования микропроцессорной системы на ассемблере. Булатов В.Н. - 45 стр.

UptoLike

Составители: 

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З в переводе на русский язык
означает: прыгнуть по адресу 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