Операции АЛУ, использующие активный аккумулятор и источник
Следующие арифметические и логические операции могут использовать в качестве источника любой регистр или непосредственно заданное значение. Активный аккумулятор Acc всегда используется как второй операнд и неявный получатель. Также в этих операциях Acc не может использоваться как источник.
add A[4] ; Acc = Acc + A[4]
addc #32h ; Acc = Acc + 32h + бит переноса (MAXQ10)
; Acc = Acc + 0032h + бит переноса (MAXQ20)
sub A[15] ; Acc = Acc - A[15]
subb A[1] ; Acc = Acc - A[1] - бит переноса
cmp #00h ; если (Acc == 00h), то устанавливается флаг эквивалентности (MAXQ10)
; если (Acc == 0000h), то устанавливается флаг эквивалентности (MAXQ20)
and A[0] ; Acc = Acc AND A[0]
or #55h ; Acc = Acc OR #55h (MAXQ10)
; Acc = Acc OR #0055h (MAXQ20)
xor A[1] ; Acc = Acc XOR A[1]
|
Операции АЛУ, использующие только активный аккумулятор
Следующие арифметические и логические операции работают только с активным аккумулятором.
cpl ; Acc = NOT Acc
neg ; Acc = (NOT Acc) + 1
rl ; сдвиг аккумулятора влево без использования бита переноса
rlc ; сдвиг аккумулятора влево с использованием бита переноса
rr ; сдвиг аккумулятора вправо без использования бита переноса
rrc ; сдвиг аккумулятора вправо с использованием бита переноса
sla ; арифметический сдвиг аккумулятора влево на одну позицию
sla2 ; арифметический сдвиг аккумулятора влево на две позиции
sla4 ; арифметический сдвиг аккумулятора влево на четыре позиции
sr ; сдвиг аккумулятора влево, запись в бит переноса значения бита Acc.0,
; очистка бита Acc.7 (MAXQ10)
; очистка бита Acc.15 (MAXQ20)
sra ; арифметический сдвиг аккумулятора вправо на одну позицию
sra2 ; арифметический сдвиг аккумулятора вправо на две позиции
sra4 ; арифметический сдвиг аккумулятора вправо на четыре позиции
xchn ; обмен полубайтами каждого байта Acc
xch ; обмен байтами Acc (только у MAXQ20)
|
Операции АЛУ с битами, использующие только активный аккумулятор
Следующие арифметические и логические операции работают только с битами активного аккумулятора и флагом переноса. Любая эта операция может работать с битами от 0 до 7 (для MAXQ10) или от 0 до 15 (для MAXQ20) активного аккумулятора Acc.
move C, Acc.0 ; копирование нулевого бита аккумулятора в бит переноса
move Acc.5, C ; копирование бита переноса в пятый бит аккумулятора
and Acc.3 ; Acc.3 = Acc.3 AND бит переноса
or Acc.0 ; Acc.0 = Acc.0 OR бит переноса
xor Acc.1 ; Acc.1 = Acc.1 OR бит переноса
|
Ни одно из вышеупомянутых действий над битами не вызывает автоматического инкремента или декремента или операции по модулю, определенной в регистре АРС.
|