# Выработка кодов условий, страница 2

¦CAS,CAS2,CMP ¦ - ¦ * ¦ * ¦ ? ¦ ? ¦ V=~Sm&Dm&~Rm v Sm&~Dm&Rm  ¦

¦CMPI,CMPM    ¦   ¦   ¦   ¦   ¦   ¦ C=Sm&~Dm v Rm&~Dm v Sm&Rm ¦

+-------------+---+---+---+---+---+---------------------------+

¦DIVS,DIVU    ¦ - ¦ * ¦ * ¦ ? ¦ 0 ¦ V= переполнение деления   ¦

+-------------+---+---+---+---+---+---------------------------+

¦MULS,MULU    ¦ - ¦ * ¦ * ¦ ? ¦ 0 ¦ V= переполнение умножения ¦

+-------------+---+---+---+---+---+---------------------------+

¦SBCD,NBCD    ¦ * ¦ U ¦ ? ¦ U ¦ ? ¦ C= десятичный заем        ¦

¦             ¦   ¦   ¦   ¦   ¦   ¦ Z=Z&~Rm&...&~R0           ¦

+-------------+---+---+---+---+---+---------------------------+

¦NEG          ¦ * ¦ * ¦ * ¦ ? ¦ ? ¦ V=Dm&Rm, C=Dm v Rm        ¦

+-------------+---+---+---+---+---+---------------------------+

¦NEGX         ¦ * ¦ * ¦ ? ¦ ? ¦ ? ¦ V=Dm&Rm, C=Dm v Rm        ¦

¦             ¦   ¦   ¦   ¦   ¦   ¦ Z=Z&~Rm&...&~R0           ¦

+-------------+---+---+---+---+---+---------------------------+

¦BTST,BCHG    ¦ - ¦ - ¦ ? ¦ - ¦ - ¦ Z=~Dn                     ¦

¦BSET,BCLR    ¦   ¦   ¦   ¦   ¦   ¦                           ¦

+-------------+---+---+---+---+---+---------------------------+

¦BFTST,BFCHG  ¦ - ¦ ? ¦ ? ¦ 0 ¦ 0 ¦ N=Dm                      ¦

¦BFSET,BFCLR  ¦   ¦   ¦   ¦   ¦   ¦ Z=~Dm&...&~D0             ¦

+-------------+---+---+---+---+---+---------------------------+

¦BFEXTS,BFFFO ¦ - ¦ ? ¦ ? ¦ 0 ¦ 0 ¦ N=Sm                      ¦

¦BFEXTU       ¦   ¦   ¦   ¦   ¦   ¦ Z=~Sm&...&~S0             ¦

+-------------+---+---+---+---+---+---------------------------+

¦BFINS        ¦ - ¦ ? ¦ ? ¦ 0 ¦ 0 ¦ N=Dm                      ¦

¦             ¦   ¦   ¦   ¦   ¦   ¦ Z=~Dm&...&~D0             ¦

+-------------+---+---+---+---+---+---------------------------+

¦ASL          ¦ * ¦ * ¦ * ¦ ? ¦ ? ¦ V=Dm&(~(Dm-1)v...v~(Dm-r))¦

¦             ¦   ¦   ¦   ¦   ¦   ¦  v ~Dm&(Dm-1v...vDm-r)    ¦

¦             ¦   ¦   ¦   ¦   ¦   ¦ C=~(Dm-r+1)               ¦

+-------------+---+---+---+---+---+---------------------------+

¦ASL (r=0)    ¦ - ¦ * ¦ * ¦ 0 ¦ 0 ¦                           ¦

+-------------+---+---+---+---+---+---------------------------+

¦LSL,ROXL     ¦ * ¦ * ¦ * ¦ 0 ¦ ? ¦ C=Dm-r+1                  ¦

+-------------+---+---+---+---+---+---------------------------+

¦LSR (r=0)    ¦ - ¦ * ¦ * ¦ 0 ¦ 0 ¦                           ¦

+-------------+---+---+---+---+---+---------------------------+

¦ROXL (r=0)   ¦ - ¦ * ¦ * ¦ 0 ¦ ? ¦ C=X                       ¦

+-------------+---+---+---+---+---+---------------------------+

¦ROL          ¦ - ¦ * ¦ * ¦ 0 ¦ ? ¦ C=Dm-r+1                  ¦

+-------------+---+---+---+---+---+---------------------------+

¦ROL (r=0)    ¦ - ¦ * ¦ * ¦ 0 ¦ 0 ¦                           ¦

+-------------+---+---+---+---+---+---------------------------+

¦ASR,LSR,ROXR ¦ * ¦ * ¦ * ¦ 0 ¦ ? ¦ C=Dr-1                    ¦

+-------------+---+---+---+---+---+---------------------------+

¦ASR,LSR(r=0) ¦ - ¦ * ¦ * ¦ 0 ¦ 0 ¦                           ¦

+-------------+---+---+---+---+---+---------------------------+

¦ROXR (r=0)   ¦ - ¦ * ¦ * ¦ 0 ¦ ? ¦ C=X                       ¦

+-------------+---+---+---+---+---+---------------------------+

¦ROR          ¦ - ¦ * ¦ * ¦ 0 ¦ ? ¦ C=Dr-1                    ¦

+-------------+---+---+---+---+---+---------------------------+

¦ROR (r=0)    ¦ - ¦ * ¦ * ¦ 0 ¦ 0 ¦                           ¦

L-------------+---+---+---+---+---+----------------------------  = не изменяется

U  = значение не имеет смысла

?  = значение определяется особо

*  = значение устанавливается в соответствии с общим правилом:

X=C

N=Rm

Z=~Rm&...&~R0

Sm = старший бит операнда источника

Dm = старший бит операнда приемника

Rm = старший бит результата

R  = проверяемый регистр

n  = номер бита

r  = величина сдвига

LB = нижняя граница

UB = верхняя граница

&  = логическое И

v  = логическое ИЛИ

~  = логическое отрицание

Таблица A-2. Проверяемые условия

----------T-------------------------T----T-------------------¬

¦Мнемоника¦     Название условия    ¦Код ¦    Определение    ¦

+---------+-------------------------+----+-------------------+

¦    T (*)¦ True                    ¦0000¦        1          ¦

¦         ¦   тождественно истинно  ¦    ¦                   ¦

¦    F (*)¦ False                   ¦0001¦        0          ¦

¦         ¦   тождественно ложно    ¦    ¦                   ¦

¦    HI   ¦ HIgh                    ¦0010¦     ~C & ~Z       ¦

¦         ¦   выше                  ¦    ¦                   ¦

¦    LS   ¦ Low or Same             ¦0011¦      C v Z        ¦

¦         ¦   не выше               ¦    ¦                   ¦

¦ CC (HS) ¦ Carry Clear             ¦0100¦       ~C          ¦

¦         ¦   переноса не было      ¦    ¦                   ¦

¦ CS (LO) ¦ Carry Set               ¦0101¦        C          ¦

¦         ¦   был перенос           ¦    ¦                   ¦

¦    NE   ¦ Not Equal               ¦0110¦       ~Z          ¦

¦         ¦   не равно              ¦    ¦                   ¦

¦    EQ   ¦ EQual                   ¦0111¦        Z          ¦

¦         ¦   равно                 ¦    ¦                   ¦

¦    VC   ¦ oVerflow Clear          ¦1000¦       ~V          ¦

¦         ¦   переполнения не было  ¦    ¦                   ¦

¦    VS   ¦ oVerflow Set            ¦1001¦        V          ¦

¦         ¦   было переполнение     ¦    ¦                   ¦

¦    PL   ¦ PLus                    ¦1010¦       ~N          ¦

¦         ¦   плюс                  ¦    ¦                   ¦

¦    MI   ¦ MInus                   ¦1011¦        N          ¦

¦         ¦   минус                 ¦    ¦                   ¦

¦    GE   ¦ Greater or Equal        ¦1100¦ (N & V)v(~N &~V)  ¦

¦         ¦   больше или равно      ¦    ¦                   ¦

¦    LT   ¦ Less                    ¦1101¦(N & ~V) v (~N & V)¦

¦         ¦   меньше                ¦    ¦                   ¦

¦    GT   ¦ Greater                 ¦1110¦(N&V&~Z)v(~N&~V&~Z)¦

¦         ¦   больше                ¦    ¦                   ¦

¦    LE   ¦ Less or Equal           ¦1111¦Z v (N&~V) v (~N&V)¦

¦         ¦   меньше или равно      ¦    ¦                   ¦

L---------+-------------------------+----+-------------------(*) Не используются в командах Bcc, cpBcc.