Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS.doc
Скачиваний:
29
Добавлен:
17.04.2019
Размер:
1.08 Mб
Скачать

9.4 Способы адресации операндов

В системе команд ОМЭВМ К1816ВЕ51 реализованы широкие возможности по адресации операндов, при этом наряду с традиционными способами расширены возможности по способам представления форматов данных. Используются следующие форматы:

- побитовый;

- потетрадный (4 бита);

- побайтный (8 бит);

- 16-разрядный.

Кроме основных способов адресации, определение которых дано в разделе 2.4.1, добавлена базово-индексная адресация – разновидность косвенной адресации, когда в команде указываются источники двух частей адреса A+PC или A + DPTR. Часть адреса, находящаяся в аккумуляторе, воспринимается как смещение адреса с учетом знака, то есть смещение на 128. Например,

MOVC A, @A + PC ; M[A + PC] A,

MOVC A, @A + DPTR ; M[A + DPTR] A.

9.5 Система команд

В системе команд ОМЭВМ К1816ВЕ51 наблюдается преемственность от ОМЭВМ К1816ВЕ48. Выделим 4 группы команд и отметим основные из них.

1. Пересылки данных – фактически выполняется копирование данных, то есть при пересылке в источнике байт сохраняется. Команда “MOV” допускает 15 комбинаций адресации источника и приемника:

a). пересылки типа “регистр-регистр” – выполняются только через аккумулятор:

MOV A, Rn ; Rn A , где Rn - любой регистр R7-R0,

MOV Rn,A ; A Rn ,

MOV A, #D8; данные D8 A.

б). пересылки типа “память-регистр”. Используется как прямая, так и косвенная адресации с использованием регистров R0,R1,A,DPTR. Команды обращения к внутреннему ОЗУ (128 ячеек) имеют вид:

MOV Rm, direct addr ; M[direct addr] Rm , то есть из ячейки памяти с адресом, указанным в команде, переслать байт в регистр,

MOV direct addr , Rm, ; Rm M[direct addr]

MOV A, @R0 или R1 ; M[R0(1)]  A,

MOV @R0(1), A ; A M[R0(1)],

MOV @R0(1), #D8 ; данные D8  M[R0(1)] .

Для обращения ко внешнему ОЗУ (64K) используются команды с косвенной адресацией c использованием регистрa DPTR :

MOVX A, @ DPTR ; M[DPTR]  A;

MOVX @ DPTR, A ; A M[DPTR];

Для обращения к ячейкам памяти программы, например при обращении к таблицам, также используются команды с косвенной адресацией:

MOVC @A + PC, A ; A M[A + PC],

MOVC @A + DPTR, A ; A M[A + DPTR];

в). обмен данными выполняется только через аккумулятор:

XCH A,Rm ; A Rm,

XCH A, direct addr ; A M[direct addr]

XCHD A,@R0(1) ; A M[R0(1)];

г). команды записи в стек и чтения из стека используют прямую адресацию:

PUSH direct addr ; SP+1, M[direct addr] M[SP+1]

POP direct addr ; M[SP] M[direct addr], SP-1,

2. Преобразование данных. Для операций с двумя операндами по умолчанию в качестве источника одного операнда используется аккумулятор и результат записывается также в аккумулятор. Основные команды преобразования данных следующие:

a). команды сложения

ADD A, Rm ; A + RmA,

ADD A, direct addr ; A+ M[direct addr]→A,

ADD A, @R0(1) ; A+ M[R(0)1]→A,

ADD A, #D8 ; A+ #D8→A;

б). команды сложения с учетом признака переноса С, используются все типы операндов, что и для сложения без учета признака С

ADDC A, Rm ; A + Rm +C →A;

в). команды вычитания с заемом C

SUBB A, Rm ; A – C - Rm →A,

SUBB A, direct addr ; A – C - M[direct addr]→A,

SUBB A, @R0(1) ; A – C - M[R(0)1]→A,

SUBB A, #D8 ; A – C - #D8→A;

г). команды инкремента –декремента используют 4 типа операндов – r  {A, Rm, direct addr, @R0(1)}, где direct addrпрямой адрес операнда из ОЗУ, @R0(1)косвенная адресация операнда из ОЗУ,

INC r ; r +1→A,

DEC r ; r -1→A;

д). команда умножения использует только 8-разрядные регистры А (аккумулятор) и В. Старший байт 16-разрядного произведения сохраняется в регистре В, а младший байт – в А:

MUL AB ; A*B B,A;

е). команда деления - делит 8-разрядное целое число без знака из аккумулятора А на число из регистра В. При этом частное сохраняется в А, а остаток – в В.

DIB AB ; A/B A, остаток  В;

ж). преобразование кода в аккумуляторе

CLR A ; A=0

CPL A ;обратный код (поразрядное инвертирование);

з). логические операции, в которых используется пять типов операндов, - r  {A, Rm, #D8, direct addr, @R0(1)}, -

ANL A, r ; A r →A,

ORL A, r ; A r →A,

XRL A, r ; A rA, “исключающее ИЛИ”;

и). сдвиги

RL A, RR A ; циклические сдвиги влево и вправо без учета признака переноса

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]