- •1.6. Анализ комбинационных схем.
- •6.2. Способы описания и задания автоматов.
- •Архитектура процессора 8080
- •Регистровый файл
- •Регистр флагов
- •Назначение регистров
- •О выполнении некоторых команд i8080
- •Кодировка номера регистра (DDD и SSS)
- •Арифметические команды
- •Логические команды
- •Параллельная обработка.
Общее описание процессора
Архитектура процессора 8080
Регистровый файл
Aфлаги
BC
D E
H L
PC (счётчик команд)
SP (указатель стека )
Пара регистров A + флаги (первая строка таблицы) образуют 16 разрядный регистр, именуемый PSW, причём A занимает старший байт слова, а флаги — младший. Аналогично регистры B и C образуют 16-разрядный регистр BC, регистры D и E – регистр DE, регистры H и L – регистр HL.
Регистр флагов
D7 |
|
|
|
|
|
|
D0 |
S |
Z |
x |
AC |
x |
P |
x |
C |
S – знак
Z – нуль
x – значение не определено AC – вспомогательный перенос P – чётность
С – перенос
Назначение регистров
A– аккумулятор. Все арифметические и логические операции производятся только между A и другими регистрами или между A и байтом непосредственных данных.
B, C, D, |
– 8-разрядные регистры общего назначения. |
E, H и L |
|
HL |
– регистровая пара, состоящая из двух 8-разрядных регистров ( H – старший регистр, L -- младший), |
|
используется для косвенно-регистровой адресации 64 Кбайт памяти. |
DE |
– часто используемая регистровая пара, поскольку имеется команда обмена содержимым между парами |
|
HL и DE . |
PC |
– счётчик команд, содержит адрес очередной исполняемой команды. |
SP |
– указатель стека автоматически инкрементируется на 2 при записи пары регистров в стек (отдельный 8- |
|
разрядный регистр в стек записать нельзя, только парами) и декрементируется при извлечении из |
|
регистровой пары из стека. |
F– регистр флагов. Непосредственно недоступен программисту, но его в составе PSW можно сохранить в стеке, а потом извлечь в другую регистровую пару, если нужно специально установить или проверить нужные флаги.
Так как адресное пространство всего 64 Кбайт, то полный адрес занимает 2 байта. Команды этого процессора бывают одно-, двух- и трёхбайтными. В первом байте всегда содержится код операции.
Система команд микропроцессора состоит из 78 базовых команд, которые можно разделить на пять групп:
Формат информационного слова (данных): D7 D6 D5 D4 D3 D2 D1 DO,
где D7 - старший разряд слова, а D0 - младший. Отрицательные числа хранятся в памяти в дополнительном коде.
Формат команды зависит от типа операции - может быть одно-, двух- и трехбайтовым. Байты двух- и трехбайтовых команд должны храниться в ячейках памяти, следующих одна за другой. Адрес первого байта всегда является адресом кода операции. Формат команд микропроцессора показан ниже:
1. Арифметические и логические операции разрешены только между аккумулятором и байтом данных или между аккумулятором и любым регистром.
3.Аккумулятор и регистровая пара HL являются единственными регистрами, которые могут быть непосредственно загружены в память.
4.3. Аккумулятор является единственным регистром, который может быть инвертирован, сдвинут, косвенно загружен в память с использованием регистровых пар ВС и DE или использован в командах ввода/вывода (IN, OUT).
5.4. Регистровая пара HL является единственной, содержимое которой может быть передано в счетчик команд (команда PCHL) или указатель стека (команда SPHL).
6.5. Регистровая пара НL может использоваться как аккумулятор двойной длины при сложении 16-разрядных чисел (команда DAD).
7.6. Содержимое регистровых пар HL и DE можно менять местами (команда HCHG).
8.7. Отдельные команды могут применяться для специальных функций. Команды XRAA или SUBA обнуляют аккумулятор. Команды ANA или ORA А очищают флаг переноса, а команда ADDA выполняет логический сдвиг аккумулятора влево.
9.8. Команды увеличения (уменьшения) на 1 регистров (INR, DCR) действуют на все флаги, за исключением флага переноса. Команды увеличения (уменьшения) на 1 регистровых пар (INX, DCX) не оказывают влияния на флаги.
10.9. В стек или из стека могут быть переданы только регистровые пары. Одной из таких регистровых пар является слово состояния микропроцессора, которое содержит аккумулятор (старший байт) и флаги (младший байт). Команды CALL и RET передают адрес в стек и обратно.
11.10. При записи 16-разрядных адресов младший байт записывается первым.
12.Операнды команд могут храниться в программно доступных регистрах микропроцессора или памяти. Для указания операнда в регистре используются регистровая и регистровая неявная адресации, для указания операнда в памяти - непосредственная, прямая, косвенная регистровая и стековая адресации.
13.Регистр признаков микропроцессора используется для хранения пяти битов признаков, которые вырабатываются в результате выполнения некоторых операций:
•S - бит знака; равен 1, если старший значащий разряд результата операции равен 1 (то есть результат операции - отрицательное число);
•Z - бит нуля; равен 1, если результат операции равен нулю;
•АС - бит вспомогательного переноса; равен 1, если при выполнении операции был перенос из третьего разряда сумматора в четвертый;
•С - бит переноса; равен 1, если при выполнении операции был перенос из седьмого разряда сумматора или заем в седьмой разряд сумматора;
•Р - бит четности; равен 1, если число единиц результата четное.
Распределение разрядов в регистре признаков следующее:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
S |
Z |
0 |
АС |
0 |
Р |
1 |
С |