Команды микропроцессора МП i8080 и стенда
Обозначение команды | Код команды | Размер, байт | Кол. такт | Операции команды | Состояния признаков | Состав циклов |
S Z 0 AC 0 P 1Cr | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1. Команды пересылки данных | ||||||
mov Rd, Rs | 01DDDSSS | (Rs) ® Rd | Признаки не изменяются | F | ||
mov M, Rs | 01110SSS | (Rs) ® M(HL) | FW | |||
mov R1, M | 01DDD110 | (M(HL)) ® Rd | FR | |||
mvi Rd, D8 | 00DDD 110 D8 | (D8) ® Rd | FR | |||
mvi M, D8 | 36 D8 | (D8) ® M(HL) | FRW | |||
lxi RP, D16 | 00RD0001 | D16 ® RP | FRR | |||
lda Addr | 3A Addr | (M (Addr)) ® A | FRRR | |||
sta Addr | 32 Addr | (A) ® M(Addr) | FRRW | |||
ldax X1 | 00X11010 | (M(X1)) ® A | FR | |||
stax X1 | 00X10010 | (A) ® M(X1) | FW | |||
lhld Addr | 2A Addr | (M (Addr)) ® L (M(Addr+1))®H | FRRRR | |||
shld Addr | 22 Addr | (L) ® M(Addr) (H)®M(Addr+1) | FRRWW | |||
sphl | F9 | (HL) ® SP | S | |||
pchl | E9 | (HL) ® PC | S | |||
xchg | EB | (HL) « (DE) | F | |||
xthl | E3 | (M (SP)) « (L) (M (SP+1)) « (H) | FRRWW | |||
push X2 | 11X20101 | M (SP-1)(X2H) M (SP-2) (X2L) (SP ):= (SP) – 2 | SWW | |||
pop X2 | 11X20001 | (M (SP))® X2L (M (SP+1))® X2H (SP) := (SP) + 2 | FRR | |||
out Port | D3 D8 | (A) ® PORT | FRO | |||
in Port | DB D8 | (PORT) ® A | FRI |
Продолжение таблицы
2. Команды преобразования и обработки | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
add Rs | 10000SSS | A (A)+(Rs) | S Z AC P Cr | F | ||
add M | A (A)+(M(HL)) | S Z AC P Cr | FR | |||
adc Rs | 10001SSS | A (A)+(Rs)+Cr | S Z AC P Cr | F | ||
adc M | 8E | A(A)+(M(HL))+Cr | S Z AC P Cr | FR | ||
adi D8 | C6 D8 | A (A)+D8 | S Z AC P Cr | FR | ||
aci D8 | CE D8 | A (A)+D8+Cr | S Z AC P Cr | FR | ||
ana Rs | 10100SSS | A (A)^ (Rs) | S Z AC P Cr=0 | F | ||
ana M | A6 | A (A)^ ( M(HL)) | S Z AC P Cr=0 | FR | ||
ani D8 | E6 D8 | A (A)^ D8 | S Z AC P Cr=0 | FR | ||
sbb Rs | 10011SSS | A(A) – (Rs) – Cr | S Z AC P Cr | F | ||
sbb M | 9E | A(A) – (M(HL)) – Cr | S Z AC P Cr | FR | ||
sbi D8 | DE D8 | A (A) – D8 – C | S Z AC P Cr | FR | ||
sub Rs | 10010SSS | A (A) – (Rs) | S Z AC P Cr | F | ||
sbb M | A (A) – (M(HL)) | S Z AC P Cr | FR | |||
sui D8 | D6 D8 | A (A) – D8 | S Z AC P Cr | FR | ||
ora Rs | 10110SSS | A (A)۷ (Rs) | S Z AC P Cr=0 | F | ||
ora M | B6 | A (A)۷(M(HL)) | S Z AC P Cr=0 | FR | ||
ori D8 | F6 D8 | A (A)۷ D8 | S Z AC P Cr=0 | FR | ||
xra Rs | 10101SSS | A (A) # (Rs) | S Z AC P Cr=0 | F | ||
xra M | A (A)# (M(HL)) | S Z AC P Cr=0 | FR | |||
xri D8 | EE D8 | A (A) # D8 | S Z AC P Cr=0 | FR | ||
cmp Rs | 10111SSS | A (A), Rs(Rs) (A) – (Rs) | S Z AC P Cr | F | ||
cmp M | BE | А (A), M:=(M(HL)) (A) – (M(HL)) | S Z AC P Cr | FR | ||
cpi D8 | FE D8 | A:=(A), (A) – D8 | S Z AC P Cr | FR | ||
cma | 2F | A (А) | Не изменяются | F | ||
inr Rd | 00DDD100 | Rd (Rd)+1 | S Z AC P | F | ||
inr M | M(HL)(M(HL))+1 | S Z AC P | FRW | |||
dcr Rd | 00DDD101 | Rd (Rd) – 1 | S Z AC P | F | ||
dcr M | M(HL)(M(HL)) – 1 | S Z AC P | FRW | |||
inx RP | 00RP0011 | RP (RP) + 1 | Не изменяются | F | ||
dcx RP | 00RP1011 | RP (RP) – 1 | Не изменяются | F | ||
dad RP | 00RP1001 | HL (HL) + (RP) | Cr | FBB | ||
daa | A (Aкор.) | S Z AC P Cr | F | |||
rlc | A0←A7; Cr← A7 ; Ai+1←Ai | Cr | F | |||
rrc | OF | A0→A7; Cr← A0; Ai+1→Ai | Cr | F | ||
ral | Cr←A7; Cr→ A0; Ai+1←Ai | Cr | F | |||
rar | 1F | A0→Cr; A7← Cr; Ai+1→Ai; | Cr | F |
Продолжение таблицы
3. Команды управления программой | |||||||
1 | 2 | 3 | 4 | 5 | 7 | ||
jmp Addr | C3 Addr | PC Addr | Не изменяются | FRR | |||
Jcond Addr | 11CCC010 | PC Addr | Не изменяются | FRR | |||
call Addr | CD Addr | (PCH) ® M (SP – 1) (PCL) ® M (SP – 2) (SP) := (SP-2) PC) Addr | Не изменяются | SRRWW | |||
Ccond Addr | 11CCC100 | При выполнении условия: (PCH) ® M (SP – 1) (PCL) ® M (SP – 2) (SP): = (SP-2) PC Addr | Не изменяются | SRR/SRRWW | |||
ret | C9 | PCL (M (SP)) PCH (M (SP + 1)) SP (SP + 2) | Не изменяются | FRR | |||
Rcond | 11CCC000 | При выполнении условия: PCL (M (SP)) PCH (M (SP + 1)) SP (SP + 2) | Не изменяются | S/SRR | |||
rstV | 11VVV111 | (PCH) ® M (SP – 1) (PCL) ®M (SP – 2) SP (SP – 2) PCH 00h PCL | Не изменяются | SWW | |||
4 Команды управления процессором | ||||||
stc | Cr1 | Cr | F | |||
cmc | Cr←Сr | Cr | F | |||
nop | PC (PC+1) | Не изменяются | F | |||
ei | FB | TгПр←1 | Не изменяются | F | ||
di | F3 | ТгПр←0 | Не изменяются | F | ||
hlt | Останов с отключением шин | Не изменяются | FB |
В таблице применены следующие обозначения:
F – четырехтактный цикл выборки кода операции;
S – шеститактный цикл выборки кода операции;
R – цикл чтения памяти;
I – цикл чтения из дополнительной области (внешних устройств);
W – цикл записи в память;
O – цикл записи в дополнительную область (внешних устройств);
B – цикл захвата шины;
DDD – двоичный код регистра приемника и SSS – двоичный код регистра источника: A=111; B=000; C=001; D=010; E=011; H=100; L=101;
Rd – регистр приемник; (Rd) – содержимое регистра – приемника;
Rs – регистр источник; (Rs) – содержимое регистра источника;
D 8 – байт данных;
D16 – двухбайтное слово данных (в коде команды после кода операции располагается младший байт данных, за которым располагается старший байт данных);
Addr – двухбайтное слово адреса (в коде команды расположение младшего и старшего байтов адреса аналогично указанному для D16);
(M(Х)) – содержимое ячейки памяти с адресом, содержащемся в объекте Х;
(Ri) – содержимое регистра с именем Ri;
RP – пара регистров, код которой для пар RP следующий:
ВС=00; DE=01; HL=10; SP=11;
X1 – пара регистров, код которой для пар X1 следующий:
BC=00; DE=01;
X2 – пара регистров, код которой для пар X2 следующий:
BC=00; DE=01; HL=10; PSW=11 (PSW=AF);
Port – байт адреса регистра ввода/вывода;
۷, ^, # – логические операции ИЛИ, И, ИСКЛЮЧАЮЩЕЕ ИЛИ;
S, Z, AC, Cr, P – признаки знака и нуля результата, переноса/заёма между тетрадами и байта результата вцелом, четности состава единичных разрядов в байте результата преобразования соответственно;
Ai – содержимое i – го разряда аккумулятора;
Cond – условия, определяемые состоянием битов признаков в регистре F;
CCC – код условия, в соответствующий обозначению признака в обозначении команды, следующий:
– NZ – не нуль (Z=0) CCC=000 / Z – нуль (Z=1) CCC=001;
– NC –нет переноса (Сr=0) ССС=010 / C – перенос (Сr=1) ССС=011;
– PO – нечетное число единиц в слове результата (P=0) CCC=100 / PE – четное число единиц (P=1) CCC=101;
– P – положительность (S=0) CCC=110 / M – отрицательность (S=1) CCC=111;
ТгПр – триггер разрешения/запрета прерываний.
Лабораторная работа 3
Исследование арифметико-логического
устройства (АЛУ) учебных стендов
Цель работы
Экспериментальное исследование свойств АЛУ учебных стендов и закрепление знаний по организации АЛУ ЭВМ, основам преобразования числовой информации.
Задание на работу
3.2.1. Для набора операций АЛУ микропроцессора учебного стенда, инициируемых командами add B (код 80); sub B (90); cmp В (В8); ana М (А6); ora В (В0); xra В (А8); rlc (07); rrc (0F); inr М (34); dcr В (05); inx В (03); dcx D (1В) составьте функциональную схему АЛУ, соответствующую одношинной организации внутренней магистрали данных.
3.2.2. Подготовьте листинг программы для покомандного прогона приведенного набора команд по форме табл. 2.2 лабораторной работы 2. В графе 5 таблицы отобразите сведения по исходным данным загрузки регистров на входе АЛУ числами перед выполнением операции и сведения о месте и результате выполнения операции. В качестве числовых значений для операций АЛУ используйте номера исполнителей работы по списку группы в hex-формате.
3.2.3. Выполняя покомандный прогон программы, зафиксируйте результаты выполнения операций в части числового результата и состояния битов обобщённых признаков по содержимому регистра F.
3.2.4. Проведите анализ и подготовьтесь к объяснению полученных результатов по отчёту.