Микропроцессор Z80 его структура и система командРефераты >> Программирование и компьютеры >> Микропроцессор Z80 его структура и система команд
В микропроцессоре регистровая пара HL является одной из трех регистровых пар, которые используется в качестве адресных регистров. В этом качестве регистровая пара HL является наиболее важной. Регистровая пара HL также может быть использована для хранения 16-ти разрядного числа, и существует определенный ряд арифметических операций, которые могут быть выполнены с этими числами. Н-регистр и L-регистр также могут быть использованы и как отдельные регистры, хотя с ними может быть выполнено ограниченное число операций.
Регистровая пара ВС и DE. Эти пары используются главным образом как адресные регистры. Регистры могут быть использованы как одинарные. Регистр В рекомендуется использовать в качестве счетчиков циклов.
Набор альтернативных регистров.
Z80 имеет альтернативный набор регистров для А,Р,Н,1ДС, D,E. Они обозначаются A’,F, и т.д. Существуют две специальные команды, которые позволяют обменивать основной и альтернативный набор регистров. После обмена для Z80 альтернативный набор становится основным, а основной - альтернативным.
Альтернативные наборы регистров часто используются для сохранения среда, когда запускается независимая задача.
Регистровые пары IX и IY используются для выполнения операции, которая включает индексацию. Это дает возможность работать со списком или таблицей. Начальный адрес списка или таблицы должен быть первоначально занесен в подходящую пару регистров IX иди IY. В программе монитора SPECTRUMa lY пара содержит адрес 23610 (5C3Ah), что является начальным адресом таблицы системных переменных. IX пара широко используется как указатель в программах обработки команд LOAD, SAVE, VERIFY, MERGE.
Указатель стека - это адресный регистр. Он используется для указания в памяти области машинного стека и всегда рассматривается как одинарный двухбайтовый регистр. Z80 использует стек, заполненный в памяти сверху вниз. Аналогией является магазин автомата - по принципу последний пришел, первым ушел. Указатель стека используется для указания различных размещений в области стека в каждом случае. Указатель стека всегда содержит адрес, куда последний раз была произведена запись. Поэтому управляющее устройство сначала уменьшает значение указателя стека, а затем помещает туда значение. Пересылка в стек двухбайтовая, и поэтому указатель стека должен быть дважды уменьшен при помещении в стек и дважды увеличен при выборке из стека. Машинный стек обычно используется как место сохранения адресов возврата, но можно использовать его как рабочую область.
Регистр 1 - регистр вектора прерываний, используется для размещения адресов устройств ввода-вывода. Однако BSPECTRUMe эта возможность не используется и 1- регистр используется для генерации TV - сигнала.
Регистр R- регенерации памяти. Он является простым счетчиком, который увеличивается каждый раз при выполнении цикла регенерации. 3начение в регистре циклически изменяется от 0 до 255.
Арифметико-логическое устройство (АЛУ).
В АЛУ выполняются арифметические и логические операции. Возможно выполнение сложения и вычитания, а также АЛУ способно выполнять большое количество битовых операций и устанавливать флаги, чтобы показать результат.
СИСТЕМА КОМАНД МИКРОПРОЦЕССОРА Z-80.
Команды и данные.
Команды поделены на 18 групп, каждая из которых состоит из тех команд, которые сильно похожи друг на друга. Существует шесть классов данных, которые могут следовать за командой.
1.0днобайтовая константа (+DD).
Это число А в диапазоне 00-FFh,(0-65535d). Те команды, которые требуют за собой однобайтовую константу, имеют мнемоническую приставку +DD. Например: LD HL,+DDDD.
2. Двухбайтовая константа (+DDDD).
Это число А в диапазоне 0000-FFFFh (0-65535d).Те команды, которые требуют за собой двухбайтовую константу, имеют мнемоническую приставку +DDDD. Например: LD HL,+DEDD.
3. Двухбайтовый адрес (ADDV).
Это число А в диапазоне 0000-FFFFh (0-65535d),то есть число, которое используется как адрес памяти. Те команды, которые требуют за собой двухбайтовый адрес, имеют приставку ADDV, например: JP ADDV.
4. Однобайтовая константа смещения(e).
Это число А в диапазоне 00-FFh(-128+127d).Число вегда представлено в дополнительном коде.Те команды,которые требуют за собой однобайтовую константу,имеют мнемоническую приставку e.Наприме:JP e.
5. Однобайтовая индуксирующая константа смещения (+D).
Это число А в диапазоне 00-FFh, (-128 +127d) представлено дополнительной арифметике. Те команды, которые требуют за собой однобайтовую индексирующую константу смещения, имеют мнемоническую приставку +D. Например: LD A,(JX+D)
6 Однобайтовая индексирующая константа смещения и однобайтовая константа (+D,+DD).
Это два числа в диапазоне 00-FFh, первое из которых рассматривается как десятичное -128+127,а второе - как десятичное 0-255. Команды, требующие два байта данных, сопровождаются мнемониками D и +DD.Например:LD (JX+D),+DD.
ГРУППА КОМАНД.
Существует много путей для разделения на группы сотен различных команд. Метод ,выбранный, здесь, разделяет команды на 18 функциональных групп.
Группа 1. Команда “нет операции”
Мнемоника 16-ный код
NOP 00
Выполнение команды требует 1,14 мкс. Ни один из регистров или флагов не изменяется. Команда NOP используется программистом для организации задержек, но чаше для удаления ненужных команд из программы.
Группа 2. Команды загрузки регистра константами.
Мнемоника 16-ный код
LD A,+DD 3EDD
LD H,+DD 26DD
LD L,+DD 2EDD
LD B,+DD 06DD
LD C,+DD 0EDD
LD D,+DD 16DD
LD E,+DD lEDD
Каждя из этих команд требует два байта памяти: один для кода операции, второй для константы. Команды записывают в регистр ответствующие значения, старые значения регистра пропадают.
Сведущие команды выполняют загрузку пары регистров двухбайтовыми константами.
Мнемоника 16-ный код
LD HL,+DDDD 21 DD DD
LD BC,+DDDD 01 DD DD
LD DE,+DDDD 11 DD DD
LD IX,+DDDD DD 21 DD DD
LD IY,+DDDD FD 21 DD DD
LD SP,+DDDD 31 DD DD
Строка команды требует 3 или 4 байта в памяти. Код операции занимает 1 или 2 байта ,и 2 байта занимает константа. Первый байт константы загружается в младший регистровой пары т.е. L,C,E,X,Y,P, а второй байт в старший регистр, т.е. H,B,D,l,S. Эти команды записывают в регистровые пары данные, которые часто рассматриваются программистом как двухбайтовый адрес, но могут быть также и двухбайтовым числовым значением и двумя отдельными однобайтовыми числовыми значениями.
Команды этой группы не изменяют флагов.
Группа 3. Команды копирования регистров и обмена. Существует 59 команд, которые выполняют копирование регистров и регистровых пар .Эти команды можно разделить на 4 подгруппы.
Подгруппа А. Команды копирования типа регистр-регистр. Следующая таблица дает коды операций команд, выполняющих копирование содержимого одного регистра в другой.
LD LD LD LD LD LD LD
регистр A,R H,R L,R B,R C,R D,R E,R
A 7F 67 6F 47 4F 57 5F