1. Команды пересылки.
Условные обозначения:
#d - непосредственный операнд;
ad - адрес РПД;
d16- адрес внешней памяти;
Rn - регистр текущего банка;
Ri- нулевой или первый регистр текущего банка;
bit - прямой адрес бита;
rel- 8-разрядное смещение в дополнительном коде для выполнения относительных переходов. Величина смещения позволяет передавать управление в пределах –128 ÷ +127 байт относительно адреса следующей команды;
@ - признак косвенной адресации;
MOV - пересылка при работе с РПД;
MOVX - пересылка c внешней памятью данных;
MOVC - пересылка c памятью команд;
MOV A, (Rn,ad,@Ri, #d);
MOV Rn, (A,ad,d);
MOV ad, (Rn,А,ad,@Ri,#d);
MOV ( A,Rn,ad),#d;
MOV @Ri,(ad,Rn,#d);
MOV ad1,ad2;
MOV DPTR,#d16.
Команды этой группы не модифицируют признаки результата за исключением команды загрузки PSW и пересылок, в которых приемником результата является аккумулятор А. В этом случае устанавливается бит паритета и аппаратно формируется признак равенства 0 – Z=1, который можно использовать для выполнения команд условного перехода JZ (JNZ).
XCH А,(Rn,ad,@Ri) - обмен содержимым А и (Rn,@Ri,ad);
XCHD A,@Ri - обмен содержимым мл. тетрад байтовых операндов;
SWAP- обмен содержимым тетрад в аккумуляторе;
PUSH ad - запись в стек;
POP ad - чтение из стека.
2. Команды обращения к впд.
Обращение к ВПК и ВПД осуществляется через регистр - указатель DPTR. Обращение к регистру возможно с помощью команды MOV DPTR,#d16, старший (DPH) и младший (DPL) байты этого регистра доступны через зону РСФ.
movx A,@DPTR;
movx @DPTR,A;
movx @Ri,A;
movx A,@Ri - странично-косвенный метод доступа: смещение внутри страниц задает содержимое Ri, а номер страницы формируется на выходе порта P2. На основе этого способа можно организовать индексную адресацию.
Обращение к памяти команд:
movc A,@A+DPTR {(A):=@(A+DPTR)}
movc A,@A+PC {PC:=PC+1;(A):=((A+PC))} - в А находится целое беззнаковое смещение, РС - программный счетчик. Эти команды только для чтения. Их обычно используют при работе с таблицами, хранящимися в ПЗУ.
3. Арифметические операции.
ADD A,(Rn,ad,@Ri,#d) - сложение;
ADC A,(Rn,ad,@Ri,#d)- сложение с переносом;
DA - команда двоично-десятичной коррекции при сложении;
SUBB - вычитание с заемом. Это единственная команда вычитания. Поэтому перед её использованием необходимо контролировать значение бита С;
INC(DEC) (A,Rn,@Ri,ad) - инкремент (декремент) INC DPTR. Если необходим декремент, то его реализация возможна только с использованием команд декремента регистров DPL (младший байт DPTR), и DPH ( старший байт DPTR). В регистре PSW операции INC и DEC никаких признаков не формируют;
MUL AB - беззнаковое умножение 8x8 (B)(A):=(A)*(B);
DIV AB - беззнаковое деление 8/8 (A)(B):=A/B.
При умножении старший байт результата записывается в регистр-расширитель В, а младший - в А. Если содержимое А>256, то формируется флаг арифметического переполнения OV. Бит С всегда сбрасывается.
При делении частное записывается в А, а остаток - в В. Флаги переноса C и арифметического переполнения OV сбрасываются. Если (А)<(В), то флаг дополнительного переноса (АС) не сбрасывается. При делении на 0 устанавливается флаг OV.