
Сообщение от
Alex_K
Так если при копировании в аккумулятор не устанавливается флаг V, то вышли как могли. А почему нет комбинаций, которые проверяют флаг V, вон условных переходов BRx целая куча?
Флаг V и не должен устанавливаться. Устанавливается флаг Z по которому определяется, был ли установлен флаг V.
Видимо, потому что сначала закодировали матрицу PLM_BRA, а потом оказалось, что расширенной арифметике этого не хватает.
Для команды SOB была написана проверка флага Z. Ей и воспользовались.
Напомню:
Код:
NA4 = 1, NA5 = 1: // Для команды выборки инструкции 0x01
0.000.x00.1xx BR
0.000.xx1.1xx Z=1 BEQ, BLE
x.000.x01.1xx Z=1 BEQ, BLOS
1.000.x11.0xx C=0 BCC
1.000.xx1.1xx C=1 BCS, BLOS
1.000.x00.0xx N=0 BPL
1.000.x00.1xx N=1 BMI
1.000.x10.0xx V=0 BVC
1.000.x10.1xx V=1 BVS
0.000.x10.0xx V=1,N=1 BGE
0.000.x10.0xx V=0,N=0 BGE
0.000.x1x.1xx V=1,N=0 BLT, BLE
0.000.x1x.1xx V=0,N=1 BLT, BLE
NA4 = 1: // Для команды выборки инструкции 0x01 и других(?)
// Проверка NA5=1 упразднена, т.к. пересечение с командой SOB тоже проверяет Z=0
0.000.x01.0xx Z=0, BNE
1.000.x01.0xx C=0,Z=0 BHI
0.000.x11.0xx V=1,Z=0,N=1 BGT
0.000.x1x.0xx V=0,Z=0,N=0 BGT, BGE
NA4 = 0, NA5 = 1: // RTI, RTT
BIT_13 & BIT_14 & BIT_15 = 1
NA4 = 1, NA5 = 0: // Для команды SOB, DIV
Z=0
NA4 = 0, NA5 = 0: // Для команды CODE030, FIS?
N=0