Флаги и условия¶
Регистр флагов (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 - нет.