logo search
МПУЭВС

Команды передачи данных

Название команды

Мнемокод

КОП

T

Б

Ц

Операция

Пересылка в аккумулятор из регистра (п=0+7)

MOV A, Rn

11101rrr

1

1

1

(A)^(Rn)

Пересылка в аккумулятор прямоадресуемого байта

MOV A, ad

11100101

3

2

1

(A)<– (ad)

Пересылка в аккумулятор байта из РПД (i=0,1)

MOV A, @Ri

1110011i

1

1

1

(A) <– ((Ri))

Загрузка в аккумулятор константы

MOV A, #d

01110100

2

2

1

(A) <– #d

Пересылка в регистр из аккумулятора

MOV Rn, A

11111rrr

1

1

1

(Rn)^(A)

Пересылка в регистр прямоадресуемого байта

MOV Rn, ad

10101rrr

3

2

2

(Rn)<^(ad)

Загрузка в регистр константы

MOV Rn, #d

01111rrr

2

2

1

(Rn)← #d

Пересылка по прямому адресу аккумулятора

MOV ad, A

11110101

3

2

1

(ad) ←(A)

Пересылка по прямому адресу регистра

MOV ad, Rn

10001rrr

3

2

2

(ad)←(Rn)

Пересылка прямоадресуемого байта по прямому адресу

MOV add, ads

10000101

3

3

2

(add)← (ads)

Пересылка байта из РПД по прямому адресу

MOV ad, @Ri

1000011i

3

2

2

(ad)←((Ri))

Пересылка по прямому адресу константы

MOV ad, #d

01110101

7

3

2

(ad)←#d

Пересылка в РПД из аккумулятора

MOV @Ri, A

1111011i

1

1

1

((Ri))^(A)

Пересылка в РПД прямоадресуемого байта

MOV @Ri, ad

0110011i

3

2

2

((Ri))(ad)

Пересылка в РПД константы

MOV @Ri, #d

0111011i

2

2

1

((Ri))^#d

Загрузка указателя данных

MOV DPTR, #d16

10010000

3

3

2

(DPTR)←#d16

Пересылка в аккумулятор байта из ПП

MOVC A, @A+DPTR

10010011

1

1

2

A← ((A) +(DPTR))

Продолжение табл. А9.2

Пересылка в аккумулятор байта из ПП

MOVC A, @A+PC

10000011

1

1

2

(PC)←(PC)+1, (A)←((A) + (PC))

Пересылка в аккумулятор байта из ВПД

MOVX A,

@Ri

1110001i

1

1

2

(A) ← ((Ri))

Пересылка в аккумулятор байта из расширенной ВПД

MOVX

A, @DPTR

11100000

1

1

2

(A) ((DPTR))

Пересылка в ВПД из аккумулятора

MOVX @Ri, A

1111001i

1

1

2

((Ri))←(A)

Пересылка в расширенную ВПД из аккумулятора

MOVX @DPTR, A

11110000

1

1

2

((DPTR)) ←(A)

Загрузка в стек

PUSH ad

11000000

3

2

2

(SP)←

(SP) + 1, ((SP)) ← (ad)

Извлечение из стека

POP ad

11010000

3

2

2

(ad)←(SP), (SP) ← (SP) – 1

Обмен аккумулятора с регистром

XCH A, Rn

11001rrr

1

1

1

(A)↔ (Rn)

Обмен аккумулятора с прямоадресуемым байтом

XCH A, ad

11000101

3

2

1

(A)↔ (ad)

Обмен аккумулятора с байтом из РПД

XCH A, @Ri

1100011i

1

1

1

(A) ↔ ((Ri))

Обмен младших тетрад аккумулятора и байта РПД

XCHD A, @Ri

1101011i

1

1

1

(A0...3) ↔((Ri)0..((Ri)3)

По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды M0VX и MOVC соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая – чтение байт из памяти программ.

По команде ХСН выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD – обмен младшими тетрадами (бита- ми 0–3).

Команды PUSH и POP предназначены соответственно для записи данных в стек и их чтения из стека. Размер стека ограничен лишь размером резидентной памяти данных. В процессе инициализации микроэвм после сигнала сброса или при включении питающего напряжения в SP заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н.

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

Например, чтение PSW в аккумулятор может быть выполнено командой

MOV A, PSW, которая преобразуется Ассемблером к виду

MOV A, 0D0h (E5 D0h),

где Е5 – код операции, a D0 – операнд (адрес PSW).

В системе команд микроэвм регистр аккумулятор имеет два разных имени в зависимости от способа адресации. При неявной адресации (например, в команде MOV A, R0) это имя А. При прямой адресации это имя АСС, или код имени (E0h).

А9.5. Класс команд арифметических операций ОМЭВМ

Описание этого класса приведено в таблице. Из нее следует, что микроэвм выполняет достаточно широкий набор команд для организации обработки целочисленных данных, включая команды умножения и деления.

В таблице также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).

Таблица А9.3