Команды пересылок

Мнемоника Код Число циклов Число тактов Флаги: CY, Z, M, P, C, AC Содержание
MOV dst, srs 01DDDSSS     ----- dst <- srs
MOV dst, M 01DDD110     ----- dst <- (HL)
MOV M, srs 01110SSS     ----- (HL) <- srs
MVI dst, data 00DDD110     ----- dst <- data
MVI M, data       ----- (HL) <- data
LDA addr 3A     ----- A <- (addr)
STA addr       ----- (addr) <- A
LDAX B 0A     ----- A <- (BC)
LDAX D 1A     ----- A <- (DE)
STAX B       ----- (BC) <- A
STAX D       ----- (DE) <- A
LXI B, data16       ----- BC <- data16
LXI D, data16       ----- DE <- data16
LXI H, data16       ----- HL <- data16
LXI SP, data16       ----- SP <- data16
LHLD addr 2A     ----- HL <- (addr)
SHLD addr       ----- (addr) <- HL
SPHL F9     ----- SP <- HL
PUSH B/D/H C5/D5/E5     ----- (SP) <- BC/DE/HL
PUSH PSW F5     ----- (SP) <- PSW
POP B/D/H C1/D1/E1     ----- BC/DE/HL <- (SP)+
POP PSW F1     +++++ PSW <- (SP)+
XCHG EB     ----- DE <-> HL
XTHL E3     ----- (SP) <-> HL

Наряду с мнемоникой и кодом операции (первый байт команды) таблица содержит такие важнейшие для команды характеристики, как число обращений к системной магистрали и число периодов тактовой частоты, составляющих ее полный командный цикл. Здесь же представляется информация о влиянии команды на флаги регистра признаков F (при знаке “+” команда воздействует на соответствующий флаг). Длина команды в байтах легко определяется из ее мнемоники.

Поля src и dst обозначают один из 8-разрядных регистров A, B, C, D, H, L, закодированных в соответствии со следующей таблицей:

Регистр B C D E H L A
Код              

Рассмотренная группа команд содержит команды обмена между памятью и регистрами. Это наиболее часто встречающиеся в программах команды, занимающие около 45% процентов их общего числа.

Группа команд пересылки не оказывает влияния на флаги, за исключением POP PSW.

Основу группы составляют следующие команды:

MOV, MVI Перемещение

LDA, LDAX, LXI, LHLD Загрузка

STA, STAX, SHLD Сохранение

Эти команды оперируют как байтами (MOV, MVI, LDA(X), STA(X)), так и словами (LXI, LHLD, SHLD).

В командах пересылки поля src и dst используются для указания 8-разрядных регистров A...L, а М — обозначает косвенную адресацию через регистровую пару HL, которая должна содержать прямой адрес байта, участвующего в обмене.

В составе команд имеются также операции загрузки аккумулятора с прямой (LDA) и косвенной (LDAX) адресацией через регистровые пары BC и DE, а также их обратные эквиваленты STA, STAX. С учетом значимости 16-разрядного регистра НL предусмотрены операции загрузки LHLD и хранение SHLD его содержимого по прямому адресу.

Команды MVI и LXI используют непосредственную адресацию, обеспечивающую загрузку 8- и 16- разрядного регистра константой.

Для начальной установки SP предусмотрены две команды:

LXI SP, data 16; SP <- data16

SPHL; SP <- HL

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: