Перейти к содержанию

Флаги и условия

Регистр флагов (FL)

Регистр FL имеет адрес 1Eh и содержит 8 бит состояния:

Бит ID Имя Описание
0 00h C Перенос (Carry)
1 01h B Заимствование (Borrow)
2 02h S Знак (Sign)
3 03h O Переполнение (Overflow)
4 04h Z Ноль (Zero)
5 05h G Больше (Greater)
6 06h E Равно (Equal)
7 07h L Меньше (Less)

Условия переходов

Для инструкции JMP (формат J0) используется поле <COND>. Доступны следующие условия:

ID Код Логика Имя Описание
00h UNC ALW 1 Unconditional Безусловный переход
01h CF C_OUT Carry flag Переход по переносу
02h BF B_OUT Borrow flag Переход по заимствованию
03h SF SIGN Sign flag Переход по знаку
04h OF OVERFL Overflow flag Переход по переполнению
05h ZF =0 Equals zero Переход если ноль
06h NZ !=0 Not equals zero Переход если не ноль
07h GR > Greater than Переход если больше
08h GE > || = Greater or equals Переход если больше или равно
09h LS < Less than Переход если меньше
0Ah LE < || = Less or equals Переход если меньше или равно
0Bh EQ = Equals Переход если равно
0Ch NE != Not equals Переход если не равно

Маска флагов (FlMask)

В таблице инструкций используется 8-символьная маска, где каждый символ соответствует флагу:

  • * - флаг не изменяется.
  • Буква (C, B, S, O, Z, G, E, L) - флаг изменяется.

Порядок символов: C B S O Z G E L.

Например, маска ***ZOS*C означает, что изменяются флаги C, S, O, Z, а B, G, E, L - нет.