Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KursPr.DOC
Скачиваний:
0
Добавлен:
15.09.2019
Размер:
322.56 Кб
Скачать

2 Описание архитектуры микроэвм

2.1 Структурно-логическая схема микропроцессора

Структурно-логическая схема процессора приведена на рис. 2.1.

Ш ина адреса 16 бит

Ш ина данных 8 бит

C S Z O

DAR PC

АЛУ

IR

0 7 A 8 15

SP Sd 0 R1 7

ДШ

0 R8 7

БУС

Рисунок 2.1 - Структурно-логическая схема микропроцессора

Доступными программисту являются следующие регистры: 16-разрядный регистр А – аккумулятор; два 8-разрядных индексных регистра (R1, R2); один регистр, называемый счетчиком команд, или программным счетчиком (PC); 4-разрядный регистр флагов (РФ); один указатель стека (SP).

Программно недоступными являются регистр команд (IR) и регистр адреса (DAR). В них хранятся коды и данные или адреса команд соответственно.

A – аккумулятор. Аккумулятор может служить местом хранения данных, а также результатов операций, выполняемых в АЛУ. В разрабатываемом микропроцессоре присутствует один регистр-аккумулятор.

R1,R22-а индексных регистра. Предназначены для хранения данных и выполнения арифметических операций над ними. Обращение к регистрам происходит через специальный селектор.

IR – Регистр команд – однобайтный регистр, в котором хранится код выполняемой команды. Этот регистр непосредственно программисту недоступен. Он изменяется автоматически процессором после исполнения очередной команды путем загрузки следующей команды, хранящейся по адресу, на который указывает счетчик команд.

PC – счетчик команд. Это регистр, обозначаемый PC, или программный счетчик. Этот регистр хранит адрес текущей выполняемой команды, автоматически увеличивается на длину текущей команды (при переходе на следующую). На содержимое этого регистра пользователь может повлиять только с помощью команд, изменяющих последовательное выполнение программы – команд перехода.

SP – указатель стека. Этот регистр хранит адрес текущей ячейки стека. При поступлении данных в стек содержимое указателя стека уменьшается на количество байт, равное размеру поступающих в стэк данных. Таким образом, SP всегда указывает на адрес последней заполненной ячейки стека. Когда же данные считываются из стека, содержимое указателя стека увеличивается на это количество байт.

Регистр условия (регистр флагов) – 4-разрядный регистр, содержит биты признаков состояния микропроцессора. Данные признаки, называемые флагами, автоматически изменяют свое состояние в результате операций над данными (в основном, арифметических). Эти регистры удобно использовать для организации условных переходов в программе.

Регистр условия содержит состоит из следующиъ флагов:

  • флаг нуля (ZF – zero flag);

  • флаг переноса (СF – carry flag);

  • флага знака (SF – sign flag);

  • флаг переполнения (OF – overflow flag).

В зависимости от результата предыдущей операции флаги устанавливаются или сбрасываются автоматически после ее выполнения. Флаг считается установленным, если флаговый разряд принимает значение 1, и сброшенным, если значение разряда 0.

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

ZF устанавливается, если результат арифметической или логической операции равен 0, и сбрасывается в противном случае.

СF устанавливается, если в результате операций сложения и сдвига появляется единица переноса из старшего разряда байта данных, в противном случае флаг сбрасывается в 0.

SF отражает состояние старшего бита результата.

OF устанавливается, если в результате арифметических операций возникает переполнение.

DAR (data address register) регистр данных и адреса. При наличии операндов в команде после считывания кода операции в этот регистр считываются операнды (адрес, данные для загрузки регистров, а также номера регистров).

БУС (блок управления и синхронизации). Служит для выработки управляющих сигналов и синхронизации, необходимых для выполнения команды в соответствии с сигналами дешифратора команд.

2.2 Форматы команд

Система команд микропроцессора включает в себя следующие команды:

  • загрузка регистров и запись в память;

  • сложение и вычитание целых чисел;

  • поразрядные логические операции И, ИЛИ, НЕ;

  • сдвиг;

  • безусловный и условные переходы;

  • изменение содержимого разрядов регистра кода условия (флажков);

  • ввод и вывод;

  • останов.

Максимальный размер команды составляет 16 бита (2 байта). На номер команды выделяется 1 байт, последующий байт при необходимости в зависимости от самой команды хранит параметры, обрабатываемые этой командой. Так, например, для команд, где в команде должен указываться адрес, вторые два бита хранят адрес, для команд, где в команде должно указываться значение последние два бита хранят это значение, для команд сдвига во втором байте хранится номер регистра для сдвига и количество бит сдвига (по 4 бита каждое).

Команды реализованы, так, чтобы за счет максимального использования количества возможных команд, размер каждой из них был минимален. Таким образом всего в микропроцессоре реализовано 62 команды.

Общий список всех имеющихся команд микропроцессора приведен ниже в таблице 2.1.

2.3 Режимы адресации

В данном процессоре реализовано пять режимов адресации:

  1. Прямая. Исполнительный адрес является частью команды. Дополнительных действий для вычисления адреса не требуется.

Пример:

mov A, [address1]

  1. Относительная. Формируется путем сложения значения, хранящегося в программном счетчике со значением костанты (смещения)

  2. Непосредственная. Обрабатываемые данные являются частью команды.

Пример:

mov A, #14

  1. Базовая. Исполнительный адрес вычисляется путем суммирования содержимого адресного регистра положиетльного или отрицательного смещения и адреса, адреса расположеного в коде программы.

Пример:

add A,[address1]

  1. Стековая. Адресом данных является содержимое указателя стека. В команде указывается только регистр, куда помещаются (извлекаются) данные из стека (в стек).

Пример:

push R1

2.4 Система команд

Общее число реализованных команд – 62. В таблице 2.1 приведен полный список доступных команд.

Таблица 2.1 Набор команд, реализованных в кросс-ассемблере

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

0 КОП 7

Формат

Размер команды, примечание

mov R1, R2

00000000

1 байт

mov R2, R1

00000001

1 байт

mov A, значение

00000010

8 значение 15

2 байта, непосредственная адресация

mov R1, A

00000011

1 байт

mov R2, A

00000100

1 байт1

mov A, R1

00000101

1 байт

mov A, R2,

00000110

1 байт

mov A, [адрес]

00000111

8 адрес 15

2 байта, прямая адресация

mov [адрес], A

00001000

8 адрес 15

2 байта, прямая адресация

mov R1, значение

00001001

8 значение 15

2 байта, непосредственная адресация

mov R2, значение

00001010

8 значение 15

2 байта, непосредственная адресация

add Ri, Rj

00001011

1 байта

add R1, значение

00001100

8 значение 15

2 байта, непосредственная адресация

add А, R1

00001101

1 байт

add А, R2

00001110

1 байт

add А, значение

00001111

8 значение 15

2 байта, базовая

adc R1, R2

00010000

2 байта

adc R2, R1

00010001

1 байта

sub R1, R2

00010010

1 байта

sub R2, R1

00010011

1 байта

sub R1, значение

00010100

8 значение 15

2 байта, непосредственная адресация

sub R2, значение

00010101

8 значение 15

2 байта, непосредственная адресация

sub А, R1

00010110

1 байт

sub А, R2

00010111

1 байт

sub А, значение

00011000

8 значение 15

2 байта, непосредственная адресация

sbb R1, R2

00011001

1 байта

sbb R2, R1

00011010

1 байта

Or R1, R2

00011011

1 байта

Or R2, R1

00011100

1 байта

and R1, R2

00011101

1 байта

and R2, R1

00011110

1 байта

not R1

00011111

1 байт

not R2

00100000

1 байт

shl R1, значение

00100001

8 значение 15

2 байта

Shl R2, значение

00100010

8 значение 15

2 байта

shr R1, значение

00100011

8 значение 15

2 байта

shr R2, значение

00100100

8 значение 15

2 байта

rol R1, значение

00100101

8 значение 15

2 байта

rol R2, значение

00100110

8 значение 15

2 байта

jc [адрес]

00100111

8 адрес 15

2 байта, прямая адресация

jz [адрес]

00101000

8 адрес 15

2 байта, прямая адресация

jo [адрес]

00101001

8 адрес 15

2 байта, прямая адресация

ja [адрес]

00101010

8 адрес 15

2 байта, прямая адресация

jb [адрес]

00101011

8 адрес 15

2 байта, прямая адресация

jno [адрес]

00101100

8 адрес 15

2 байта, прямая адресация

jnz [адрес]

00101101

8 адрес 15

2 байта, прямая адресация

jnc [адрес]

00101110

8 адрес 15

2 байта, прямая адресация

jmp [адрес]

00101111

8 адрес 15

2 байта, прямая адресация

Clc

00110000

1 байт

Stc

00110001

1 байт

cmp R1, R2

00110010

1 байт

cmp R2, R1

00110011

1 байт

out R1, A

00110100

1 байт

out R2, A

00110101

1 байт

in A, R1

00110110

1 байт

in A, R2

00110111

1 байт

push R1

00111000

1 байт, стековая адресация

push R2

00111001

1 байт, стековая адресация

pop R1

00111010

1 байт, стековая адресация

pop R2

00111011

1 байт, стековая адресация

Halt

11111111

1 байт

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]