материалы по курсу - Вычислительные системы и микропроцессорная техника (Описание эмулятора)

Посмотреть архив целиком

Описание эмулятора

Эмулятор 8 - разрядного процессора реализован на ЭВМ типа IBM - РСАТ.

При входе в эмулятор открывается окно ПМК КР580ВМ80, в котором изображена структура "стенда".

В верхней части окна (рис.1) указываются режимы рабо­ты: "файл", "структурная схема", "система команд", "помощь".

Строкой ниже указывается адрес (состояние типы адреса в шестнадцатиричной системе счисления), данные (состояние шины данных в шестнадцатиричной системе счисления).

Далее показано окно, в котором указывается адрес ОЗУ и его содержимое, или номер регистра и его содержимое.

В окне флагов записывается состояние флагов Z, S, Р, С, АС на данный момент выполнения команды процессором, где Z - признак нулевого результата, S - знак, Р - признак четного количества единиц результата, С - признак переноса из старшего разряда, ЛС - признак дополнительного переноса из старшего разряда младшей тетрады байта.

Для ввода информации используется клавиатура, которая подразделяется на цифровую от 0 до F и режимную SpL, SpH, PcL, PcH, ОЗУ, Сброс ОЗУ, Регистр, Сброс Рeг.

Для ввода информации ОЗУ необходимо нажать кнопку «ОЗУ», затем кнопку «Ввод». После этого ввести в данную ячейку код команды или данные.

Для ввода информации в регистры требуется нажать клавишу «Регистр», клавишу «Ввод», а затем на цифровой клавиатуре произвести ввод данных.

Клавиши SpL, SpH и PcL, PcH позволяют записывать адреса в указатель стека и счетчик команд.

При вводе любой информации необходимо выполнить нажатия "мышкой" на клавишу "ввод".

В первой части "окна" расположены регистры процессо­ра:

А - аккумулятор;

B, C, D, E, H, L - регистры общего назначения (РОН), PC - программный счетчик;

SP - указатель стека.

Указатель стека - указывает вершину стека FFFF (пере­вернутый стек).

В области окна "выполнение программы" задается ре­жим:

автоматический режим - при нажатии кнопки "автоматический режим" - выполняется программа до ко­манды HLT;

покомандный режим - при нажатии кнопки "покомандный режим" реализуется весь цикл исполнения команды;

потактный режим - при каждом нажатии кнопки "выполнить" осуществляется выполнение одного такта ра­боты процессора.

В правой части окна экрана расположено "окно", в кото­ром указана "Позиция" адресного пространства ОЗУ, в кото­ром производится набор программы: адрес команды, КОП, ас­семблерный код команды. "Позиция" указывает область ад­ресного пространства ОЗУ, в котором прокруткой "А" или "V" можно указывать начало требуемого адресного пространства.

При указании "мышью" позиции "структурная схема" раскрывается следующее окно, в котором показана структур­ная схема процессора (рис.2).

Структурная схема 8-разрядного процессора включает АЛУ с входными регистрами ("Аккумулятор", "Буф. Регистр 1", "Буф. Регистр 2"), "Рег. Признаков", "Схема десятичной кор­рекции''; "Регистр команд", "Дсш. команд", "Блок синхрониза­ции и управления", "Регистры временного хранения W и Z", "регистры общего назначения B, C, D, E, H, L", указатель стека, счетчик команд, схемы инкремента и декремента .

Указанные схемы подключены к внешним шинам адреса и данных через "Буферные регистры" адреса и данных.

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

автоматический режим - AT;

покомандный режим - КМ;

потактный режим - ТК. При потактном режиме можно ис­следовать выполнение любой команды.

При каждом нажатии. кнопки "Вып." реализуется очеред­ной такт работы процессора. При этом фиксируется на экране все состояния его регистров, номер такта, номер цикла, со­стояния управляющих сигналов, регистр состояния и PSW.

Режим работы с клавиатурой соответствует предыдущему окну.


Рис. 1.





Рис. 2.

При указании "мышью" в окне "ПМК КР580ВМ80" на позицию. "Система команд", раскрывается окно "Команды" в котором предоставлена таблица (рис.3) системы команд. Код команды определяется по матрице в 16-ричиой системе счисления по столбцу и строке таблицы, например: MOV В, С - 1 или НLТ 76.

Система команд процессора.

Команды процессора представлены следующими форма­тами: однобайтным, двухбайтным и трехбайтным. За одно об­ращение к памяти выбирается один байт команды и размеща­ется в регистре команд. Если команда имеет 2 или 3 байта, то второй и третий байты записываются в программно недоступ­ные регистры W и Z, которые называются регистрами времен­ного хранения.

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

- прямая адресация (относится к командам обраще­ние к памяти, причем во втором и третьем байтах команды записывается адрес ОЗУ);

- регистровая адресация (используется для обраще­ния к внутренним регистрам процессора);

- непосредственная адресация (в поле команды размещается операнд);

- регистровая косвенная адресация (в поле команды размешается адрес регистровой пары, в которой записан ад­рес ОЗУ); в качестве регистровых пар могут быть использованы пары регистров В-С, D-E, H-L, причем последняя пара H-L - адресует ячейку памяти М, которая называется псев­дорегистром.

Система команд процессора включает 5 групп команд:

1) команды пересылок;

2) команды арифметических операций;

3) команды логических операций;

4) команды передачи управления;



5) команды: обращение к стеку, ввода-вывода и управление МП - системой.

Группы команд пересылок.

Эти команды производят обмен между регистрами РОН и ОЗУ.






1.

MOV R1, R2

передать с регистра на регистр, (R2) → R1

2.

MOV R, M

передать из памяти ОЗУ → РОН, т.е. [HL] → R, (Н) - старший полуадрес ячейки памяти , (L) - младший по­луадрес

3.

MOV М, R

передать в память (РОН) → ОЗУ, т.е. содержимое регистра R записать в ОЗУ по адресу, указанному в регистровой паре HL: (R) → ОЗУ [HL]

4.

MVI R, data

передать непосредствен­ный операнд, в R передает­ся 8 - разрядный операнд, который находится во вто­ром байте команды

5.

MVI M, data

передать в память непо­средственный операнд <data> → ОЗУ [HL]

6.

LXI RP, data

загрузить непосредствен­ный 16-разрядный опе­ранд. Команда 3-байтная. Здесь RP=BC, DE,HL Ri байт 3 Ri + 1 байт 2, где Ri - В, D,H. Ri+I - С, Е, L

7.

LDA addr

загрузить аккумулятор со­держимым ячейки памяти адреса addr; команда трехбайтная, 2 и 3

8.

STA addr

запомнить содержимое ак­кумулятора в ОЗУ по <addr>, т.е. (A) → ОЗУ
[байт3, байт2 адреса <
addr>]

9.

LHLD addr

загрузить регистры Н и L операндом из ОЗУ по <addr>; команда выполняется сле­дующим образом:

1 этап: (addr) → L.

2 этап: инкремент ад­реса (addr) + 1.

3 этап: (addr) + 1 → H

10.

SHLD addr

запомнить содержимое ре­гистров Н и L в ОЗУ по ад­ресу addr; команда выпол­няется следующим обра­зом:

1 этап: (L) → ОЗУ [addr].

2 этап: инкремент ад­реса [(addr) + 1].

3 этап: (H) → ОЗУ [(addr) +1].

11.

LDAX RP

загрузить А с косвенной адресацией, т.е. из ОЗУ, адрес ячейки которого ука­зан в регистровой паре, прочитать операнд и пере­дать его в аккумулятор



Группа команд арифметических операций.

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


1.

ADD R

сложить с регистром (R)+(A) А

2.

ADD M

сложить с памятью (A)+[HL] А

3.

ADI data

сложить непосредственно (A)+<data> A., т.е. сложить содержимое аккумулятора со вторым байтом команды, ре­зультат записать в аккумуля­тор

4.

ADC R

сложить с регистром и с би­том переноса (A)+(R)+C А

5.

ADC М

сложить с памятью и с битом переноса (A)+[HL]+C A

6.

ACI data

сложить с непосредственным операндом и битом переноса (A)+<data>+CA

7.

SUB R

вычесть содержимое регист­ра (A)-(R)A

8.

SUB М

вычесть содержимое памяти (A)-[HL]A

9.

SUI data

вычесть непосредственный операнд

10.

SBB R

вычесть содержимое регист­ра с займом (A)-(R)-C А

11.

SBB R

вычесть содержимое памяти с займом (A)-(R)-C A

12.

SBI data

вычесть непосредственный операнд с займом (A)-<data>-С А

13.

INR R

увеличить на "1" содержимое регистра (R)+1 R

14.

INR M

увеличить на "1" содержимое памяти по адресу, указанно­му в HL

15.

DCR R

уменьшить на "1" содержи­мое регистра (R)-1 R

16.

DCR M

уменьшить на "1" содержи­мое памяти по адресу, ука­занному в HL

17.

INX RP

увеличить на "1" содержимое регистровой пары

18.

DAD RP

сложить содержимое регист­ров HL, RP и результат запи­сать в регистровую пару HL (DAD B, DAD D, DAD H, DAD SP)

19.

DAA

выполнить десятичную кор­рекцию содержимого акку­мулятора; десятичная операция выполняется по прави­лам десятичной арифметики.






Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.