Описание эмулятора (561958)
Текст из файла
Описание эмулятора
Эмулятор 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) → ОЗУ |
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>+C→A |
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 | выполнить десятичную коррекцию содержимого аккумулятора; десятичная операция выполняется по правилам десятичной арифметики. |
Примечание. Команды 13-17 используются для организации счетчиков циклов в программах.
Группа команд логических операций.
1. | ANA R | логическая "И" с регистром РОН; (A)&(R) -> А,С:=0, АС:=0. Команда используется для выделения части слова: 00110111&00001111=000001 11 |
2. | ANA M | логическая "И" с памятью; [HL]&(A) -» А,С:=0, АС:=0 |
3. | ANI data | логическая "И" с непосредственным операндом; Примечание. Команды 1-3 используются для выделения частей машинных слов |
4. | XRA R | сложение по mod 2 с регистром (А) mod2 (R) → А |
5. | XRA М | сложить по mod2 содержимое А с содержимым памяти по адресу HL |
6. | XRI data | сложить по mod2 содержимое А с непосредственным операндом |
7. | ORA R | "ИЛИ" с регистром (A) v (R) → А, С:=0, АС:=0 |
8. | ORA M | "ИЛИ" с памятью [HL] v (A) → А, С:=0, АС:=0 |
9. | ORA data | "ИЛИ" с непосредственным операндом (A) v <data> → А, С:=0, АС:=0 |
10. | CMP R | сравнить с регистром. Сравнение делается через вычитание (A) - (R), результат в А не записывается, но регистр признаков устанавливается в соответствии с результатом вычитания: если (А) = (К), ToZ:=l, если (А)≠(К),то S:=1, иначе Z:=0, S:=0 |
11. | СМР М | сравнение с памятью (А) - [HL] |
12. | CPI data | сравнение с непосредственным операндом (A) - <data>. В остальном - аналогично команде СМР R. |
13. | RLC | циклический сдвиг влево. Все сдвиги делаются только над содержимым А. Сдвиг на один разряд: косая передача в АЛУ. Сдвиг на n-разрядов можно организовать только программно). |
14. | RRC | циклический сдвиг вправо А(n+1) → А(n) |
15. | RAL | арифметический сдвиг влево |
16. | RAR | арифметический сдвиг вправо |
17. | STS | установить в единицу триггер переноса: 1 → С. |
18. | CMC | инвертировать содержимое триггера переноса ┐С → С. |
19. | СМА | инвертировать содержимое аккумулятора ┐(А) → А. |
Группа команд передачи управления. Данная группа команд образует условные, безусловные переходы и обращения к подпрограммам.
1. | JMP addr | безусловный переход по адресу, указанному во втором и третьем байтах команды |
2. | JC addr | условный переход по единичному значению признака переноса С; если условие выполняется, то адрес перехода записывается на счетчик команд СК, иначе содержимое СК увеличивается на три |
3. | JNC addr | условный переход по нулевому значению признака переноса С. |
4. | JZ addr | условный переход по единичному значению признака результата. |
5. | JNZ addr | условный переход по нулевому признака Z результата |
6. | JP addr | условный переход по положительному значению результата |
7. | JM addr | условный переход по отрицательному значению результата |
8. | JPE addr | условный переход по четности кода результата |
9. | JPO addr | условный переход по нечетности кода результата |
10. | CALL addr | безусловный переход к подпрограмме; содержимое СК побайтно загружается в стек, а адрес <addr>, указанный в команде, передается на счетчик команд; указатель стека перед каждой загрузкой уменьшается на 1. |
11. | RET | возврат из подпрограммы; команда ставится в конце подпрограммы и обеспечивает чтение из стека и загрузку побайтно адреса возврата в счетчик команд; после каждого обращения к стеку указатель стека УС увеличивается на "1". |
Группа команд обращения к стеку, ввода, вывода, управления МП системой:
1. | PUSH RP | записать в стек содержимое регистровой пары; команда выполняется следующим образом: а) УС уменьшается на "1", б) (R) → OЗУ (УС-1), в) (Р) → ОЗУ (УС-2). |
2. | PUSH PSW | поместить в стек словосостояния процессора, которое включает содержимое А и PSW. Команда выполняется следующим образом: а) УС уменьшается на «1» б) (А) записывается в ОЗУ по адресу УС-1; УС уменьшается на "1", в) (PSW) записывается в ОЗУ по адресу УС-2 |
3. | POP RP | загрузка регистровой пары из стека, команда выполняется следующим образом: а) из ОЗУ по адресу УС читается слово и загружается в регистр Р, указатель стека увеличивается на" 1"; б) из ОЗУ по адресу УС+1 читается слово и загружается в регистр R, указатель стека увеличивается на "1". |
4. | POP PSW | загрузка аккумулятора и регистра признаков из стека, команда выполняется следующим образом: а) из ОЗУ по адресу УС читается слово и загружается в PSW, указатель стека увеличивается на "1"; б) из ОЗУ по адресу УС+1 читается слово и загружается в А, указатель стека увеличивается на "1". |
5. | XTHL | поменять местами содержимое стека и регистровой пары HL, а) меняется местами содержимое регистра Н и ячейки ОЗУ по адресу УС, затем УС увеличивается на "1"; б) меняется местами содержимое регистра Н и ячейки ОЗУ по адресу УС+1, затем УС увеличивается на "1". Обмен производится через регистры Z и W. |
6. | SPHL | передать содержимое регистровой пары HL в счетчик команд: (HL) → СК. |
7. | IN port | команда ввода: во втором байте указан адрес порта |
8. | OUT port | команда вывода |
9. | HLT | команда останова |
10. | NОР | пустая команда; после ее выборки счетчик команд автоматически увеличивается на "1" |
Длительность выполнения команды зависит от типа и формата команды. Самая короткая команда может быть выполнена за 1 цикл и содержать до 5 тактов. Самая длинная команда может выполняться за 5 циклов, имея по 5 тактов в каждом цикле.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.