Выбор группы команд определенного типа в таблице — КиберПедия 

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Выбор группы команд определенного типа в таблице

2019-11-11 191
Выбор группы команд определенного типа в таблице 0.00 из 5.00 0 оценок
Заказать работу

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

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

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

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

 

Рис. 1.

 

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

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

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

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

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

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

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

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

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

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

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

PC - программный счетчик;

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

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

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

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

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

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

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

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

 

Рис. 2.

 

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

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

Для организации режимов работы, как и в предыдущем окне, в данном расположена клавиатура ввода информации, аналогичная клавиатуре предыдущего окна, и соответствую­щие режимные клавиши, а также клавиши режима работы: автоматический режим - AT; покомандный режим - КМ; потактный режим - ТК. При потактном режиме можно ис­следовать выполнение любой команды.

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

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

 

 

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

Рис. 3.

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

Команды процессора представлены следующими форма­тами: однобайтным, двухбайтным и трехбайтным. За одно об­ращение к памяти выбирается один байт команды и размеща­ется в регистре команд. Если команда имеет 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, data8 передать непосредствен­ный операнд, в R передает­ся 8 - разрядный операнд, который находится во вто­ром байте команды
5. MVI M, data8 передать в память непо­средственный операнд <data> → ОЗУ[HL]
6. LXI RP, data16 загрузить непосредствен­ный 16-разрядный опе­ранд.  Команда 3-байтная. Здесь RP = BC, DE, HL в Ri записывается 3-й байт, в Ri + 1 записывается 2-й байт, где Ri - В, D, H Ri +1 - С, Е, L
7. LDA addr загрузить аккумулятор со­держимым ячейки памяти адреса addr; команда трехбайтная
8. STA addr запомнить содержимое ак­кумулятора в ОЗУ по <addr>, т.е. (A) → ОЗУ[<addr>], где <addr> = байт3, байт2 команды.
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 загрузить А с косвенной адресацией, т.е. из ОЗУ, адрес ячейки которого ука­зан в регистровой паре (BC – для LDAX B, DE – для LDAX D), прочитать операнд и пере­дать его в аккумулятор

 

 

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

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

 

1. ADD R сложить с регистром (R) + (A) → А
2. ADD M сложить с памятью (A) + ОЗУ[HL] → А
3. ADI data8 сложить непосредственно (A) + <data> → A, т.е. сложить содержимое аккумулятора со вторым байтом команды, ре­зультат записать в аккумуля­тор
4. ADC R сложить с регистром и с би­том переноса (A) + (R) + C → А
5. ADC М сложить с памятью и с битом переноса (A) + ОЗУ[HL] + C → A
6. ACI data8 сложить с непосредственным операндом и битом переноса (A) + <data> + C → A
7. SUB R вычесть содержимое регист­ра РОН: (A) - (R) → A
8. SUB М вычесть содержимое памяти: (A) - ОЗУ[HL] → A
9. SUI data8 вычесть из A непосредственный операнд: (A) - <data> → A
10. SBB R вычесть из A содержимое регист­ра с займом (c учетом флага переноса) (A) - (R) - C → А
11. SBB M вычесть из A содержимое памяти с займом (c учетом флага переноса) (A) – ОЗУ[HL] - C → A
12. SBI data8 вычесть из A непосредственный операнд с займом (A) - <data> - С → А
13. INR R увеличить на "1" содержимое регистра (R) + 1 → R
14. INR M увеличить на "1" содержимое памяти по адресу, указанно­му в HL: ОЗУ[HL] + 1 → ОЗУ[HL]
15. DCR R уменьшить на "1" содержи­мое регистра (R) - 1 → R
16. DCR M уменьшить на "1" содержи­мое памяти по адресу, ука­занному в HL: ОЗУ[HL] - 1 → ОЗУ[HL]
17. INX RP Увеличить на "1" содержимое регистровой пары: RP + 1 → RP; RP: BC для INX B, DE для INX D, HL для INX H.
18. DAD RP сложить содержимое регист­ров HL, RP и результат запи­сать в регистровую пару HL: (HL) + (RP) → (HL); RP: BC для DAD B, DE для DAD D, HL для DAD H.
19. DAA Выполнить двоично - десятичную кор­рекцию содержимого акку­мулятора; десятичная операция выполняется по прави­лам десятичной арифметики.

 

Примечание. Команды 13-17 используются для организа­ции счетчиков циклов в программах.

 

 

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

 

1. ANA R логическая "И" с A и регистром РОН; (A) & (R) → А, С:=0, АС:=0. Команда использует­ся для выделения части сло­ва:  00110111 & 00001111 = 00000111
2. ANA M логическая "И" с A и памятью; ОЗУ[HL] & (A) → А, С:=0, АС:=0
3. ANI data8 логическая "И" с A и непосредственным операндом; <data> & <R> → А, С:=0, АС:=0.
4. XRA R сложение по mod2 с A и регист­ром: (А) mod2 (R) → А
5. XRA М сложить по mod2 содержимое А с содержимым памяти по адресу HL: ОЗУ[HL] mod2 (A) → А
6. XRI data8 сложить по mod2 содержи­мое А с непосредственным операндом: (A) mod2 <data> → А
7. ORA R "ИЛИ" с A и регистром: (A) v (R) → А, С:=0, АС:=0
8. ORA M "ИЛИ" с A и памятью: ОЗУ[HL] v (A) → А, С:=0, АС:=0
9. ORI data8 "ИЛИ" с A и непосредственным операндом:  (A) v <data> → А, С:=0, АС:=0
10. CMP R сравнить A с регистром. Срав­нение делается через вычи­тание (A) - (R), результат в А не записывается, но регистр признаков устанавливается в соответствии с результатом вычитания: если (А) = (К), тo Z:=l, если (А) ≠ (К), то S:=1, иначе Z:=0, S:=0
11. СМР М сравнение A с памятью: (А) – ОЗУ[HL]
12. CPI data8 сравнение A с непосредствен­ным операндом (A) - <data>. В остальном – аналогично команде СМР R.
13. RLC циклический сдвиг влево A. Все сдвиги делаются только над содержимым А. Сдвиг выполняется только на один разряд. Сдвиг на n-разрядов можно организовать только программно). А(n+1) А(n) (A0) (A7) (C) (A7)
14. RRC Циклический сдвиг вправо A: А(n+1) → А(n) (A0) → (A7) (C) → (A7)
15. RAL сдвиг A влево через флаг переноса А(n+1) А(n) (A0) (C) (C) (A7)
16. RAR сдвиг A вправо через флаг переноса А(n+1) → А(n) (C) → (A7) (A0) → (C)
17. STS Установить в единицу флаг переноса: 1 → С.
18. CMC инвертировать содержимое флага переноса ┐С → С.
19. СМА инвертировать содержимое аккумулятора ┐(А) → А.

Примечание: команды 1- 3 используются для выделения частей машинных слов.

 

Группа команд передачи управления.

Данная группа команд образует условные, безусловные переходы и обращения к подпрограммам.

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 записать в стек содержимое регистровой пары (для BC – PUSH B, для DE – PUSH D, для HL – PUSH H); команда выполняется следующим об­разом: а) УС уменьшается на "1"; б) (R) → OЗУ [УС-1]; в) УС уменьшается на "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 тактов в каж­дом цикле.

В окне команд (рис. 3) можно получить "помощь" по на­значению команды и правилам ее выполнения, указав эту ко­манду "мышкой" и щелкнув ее 2 раза левой кнопкой.

Формат данных

Процессор обрабатывает двоичные и двоично-десятичные числа, представленные в следующих форматах: целое двоич­ное число без знака, целое двоичное число со знаком, двоич­но-десятичное число.

Нумерация разрядов справа налево, знак занимает 8 - разряд.

 

Приложение 1: Помощь по работе с эмулятором МП КР580ВМ80

Функциональные клавиши

1. Кнопка Сброс ОЗУ – предназначена для обнуления содержимого всего пространства памяти МП.

2. Кнопка Сброс Рег – необходима для обнуления содержимого всего регистров и флагов МП.

3. Кнопки Автоматический режим, Покомандный режим, Потактовый режим – предназначены для включения одного из трех режимов выполнения программ: автоматически, по одной команде, и режим выполнения по тактам команды.

4. Кнопка Выполнить – предназначена для выполнения программ пользователя в одном из трех режимов.

 

 

Цифровая клавиатура

1. Кнопки 0 – F – предназначены для ввода 16-ричных чисел.

2. Кнопка Забой – отменяет ошибочный ввод информации.

3. Кнопка Ввод – предназначена для записи информации в регистры МП или ячейки памяти, либо изменение адресов в сторону увеличения.

 

Приложение 2: Ошибки эмулятора МП КР580ВМ80

- при появлении сообщения “неопределенная команда” программа входит в состояние зависания, при котором необходимо уничтожить процесс;

- сохранять программу нужно через главное меню [Файл \ Сохранить как], опция [Файл \ Сохранить] не работает.

- для возможности работы программы (в покомандном, потактовом режимах) в теле программы должна отсутствовать команда HLT.

- команда CMP M не работает, ее необходимо избегать.

- в команде JMP [адрес] в начале необходимо написать старший байт адреса, а потом младший (в этом заключается ошибка), к примеру для перехода по адресу 8077, команду необходимо закодировать как C 3, 80, 77.

- для перехода в начало программы для отладки необходимо:

1) нажать на кнопку “ОЗУ”

2) ввести адрес начала программы в поле ввода

3) выбрать режим, к примеру покомандный.

4) нажимать на кнопку “Выполнить”, выполнять каждую команду.

5) для быстрого перехода к концу программы (ее выполнения) необходимо:

а) передать фокус на кнопку “Выполнить”

б) нажать на кнопку Enter, удерживая ее, анализируя состояние регистров дойти до конца.

 

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

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

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

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

 

Рис. 1.

 

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

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

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

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

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

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

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

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

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

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

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

PC - программный счетчик;

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

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

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

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

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

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

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

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

 

Рис. 2.

 

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

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

Для организации режимов работы, как и в предыдущем окне, в данном расположена клавиатура ввода информации, аналогичная клавиатуре предыдущего окна, и соответствую­щие режимные клавиши, а также клавиши режима работы: автоматический режим - AT; покомандный режим - КМ; потактный режим - ТК. При потактном режиме можно ис­следовать выполнение любой команды.

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

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

 

 

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

Рис. 3.

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

Команды процессора представлены следующими форма­тами: однобайтным, двухбайтным и трехбайтным. За одно об­ращение к памяти выбирается один байт команды и размеща­ется в регистре команд. Если команда имеет 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, data8 передать непосредствен­ный операнд, в R передает­ся 8 - разрядный операнд, который находится во вто­ром байте команды
5. MVI M, data8 передать в память непо­средственный операнд <data> → ОЗУ[HL]
6. LXI RP, data16 загрузить непосредствен­ный 16-разрядный опе­ранд.  Команда 3-байтная. Здесь RP = BC, DE, HL в Ri записывается 3-й байт, в Ri + 1 записывается 2-й байт, где Ri - В, D, H Ri +1 - С, Е, L
7. LDA addr загрузить аккумулятор со­держимым ячейки памяти адреса addr; команда трехбайтная
8. STA addr запомнить содержимое ак­кумулятора в ОЗУ по <addr>, т.е. (A) → ОЗУ[<addr>], где <addr> = байт3, байт2 команды.
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 загрузить А с косвенной адресацией, т.е. из ОЗУ, адрес ячейки которого ука­зан в регистровой паре (BC – для LDAX B, DE – для LDAX D), прочитать операнд и пере­дать его в аккумулятор

 

 

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

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

 

1. ADD R сложить с регистром (R) + (A) → А
2. ADD M сложить с памятью (A) + ОЗУ[HL] → А
3. ADI data8 сложить непосредственно (A) + <data> → A, т.е. сложить содержимое аккумулятора со вторым байтом команды, ре­зультат записать в аккумуля­тор
4. ADC R сложить с регистром и с би­том переноса (A) + (R) + C → А
5. ADC М сложить с памятью и с битом переноса (A) + ОЗУ[HL] + C → A
6. ACI data8 сложить с непосредственным операндом и битом переноса (A) + <data> + C → A
7. SUB R вычесть содержимое регист­ра РОН: (A) - (R) → A
8. SUB М вычесть содержимое памяти: (A) - ОЗУ[HL] → A
9. SUI data8 вычесть из A непосредственный операнд: (A) - <data> → A
10. SBB R вычесть из A содержимое регист­ра с займом (c учетом флага переноса) (A) - (R) - C → А
11. SBB M вычесть из A содержимое памяти с займом (c учетом флага переноса) (A) – ОЗУ[HL] - C → A
12. SBI data8 вычесть из A непосредственный операнд с займом (A) - <data> - С → А
13. INR R увеличить на "1" содержимое регистра (R) + 1 → R
14. INR M увеличить на "1" содержимое памяти по адресу, указанно­му в HL: ОЗУ[HL] + 1 → ОЗУ[HL]
15. DCR R уменьшить на "1" содержи­мое регистра (R) - 1 → R
16. DCR M уменьшить на "1" содержи­мое памяти по адресу, ука­занному в HL: ОЗУ[HL] - 1 → ОЗУ[HL]
17. INX RP Увеличить на "1" содержимое регистровой пары: RP + 1 → RP; RP: BC для INX B, DE для INX D, HL для INX H.
18. DAD RP сложить содержимое регист­ров HL, RP и результат запи­сать в регистровую пару HL: (HL) + (RP) → (HL); RP: BC для DAD B, DE для DAD D, HL для DAD H.
19. DAA Выполнить двоично - десятичную кор­рекцию содержимого акку­мулятора; десятичная операция выполняется по прави­лам десятичной арифметики.

 

Примечание. Команды 13-17 используются для организа­ции счетчиков циклов в программах.

 

 

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

 

1. ANA R логическая "И" с A и регистром РОН; (A) & (R) → А, С:=0, АС:=0. Команда использует­ся для выделения части сло­ва:  00110111 & 00001111 = 00000111
2. ANA M логическая "И" с A и памятью; ОЗУ[HL] & (A) → А, С:=0, АС:=0
3. ANI data8 логическая "И" с A и непосредственным операндом; <data> & <R> → А, С:=0, АС:=0.
4. XRA R сложение по mod2 с A и регист­ром: (А) mod2 (R) → А
5. XRA М сложить по mod2 содержимое А с содержимым памяти по адресу HL: ОЗУ[HL] mod2 (A) → А
6. XRI data8 сложить по mod2 содержи­мое А с непосредственным операндом: (A) mod2 <data> → А
7. ORA R "ИЛИ" с A и регистром: (A) v (R) → А, С:=0, АС:=0
8. ORA M "ИЛИ" с A и памятью: ОЗУ[HL] v (A) → А, С:=0, АС:=0
9. ORI data8 "ИЛИ" с A и непосредственным операндом:  (A) v <data> → А, С:=0, АС:=0
10. CMP R сравнить A с регистром. Срав­нение делается через вычи­тание (A) - (R), результат в А не записывается, но регистр признаков устанавливается в соответствии с результатом вычитания: если (А) = (К), тo Z:=l, если (А) ≠ (К), то S:=1, иначе Z:=0, S:=0
11. СМР М сравнение A с памятью: (А) – ОЗУ[HL]
12. CPI data8 сравнение A с непосредствен­ным операндом (A) - <data>. В остальном – аналогично команде СМР R.
13. RLC циклический сдвиг влево A. Все сдвиги делаются только над содержимым А. Сдвиг выполняется только на один разряд. Сдвиг на n-разрядов можно организовать только программно). А(n+1) А(n) (A0) (A7) (C) (A7)
14. RRC Циклический сдвиг вправо A: А(n+1) → А(n) (A0) → (A7) (C) → (A7)
15. RAL сдвиг A влево через флаг переноса А(n+1) А(n) (A0) (C) (C) (A7)
16. RAR сдвиг A вправо через флаг переноса А(n+1) → А(n) (C) → (A7) (A0) → (C)
17. STS Установить в единицу флаг переноса: 1 → С.
18. CMC инвертировать содержимое флага переноса ┐С → С.
19. СМА инвертировать содержимое аккумулятора ┐(А) → А.

Примечание: команды 1- 3 используются для выделения частей машинных слов.

 

Группа команд передачи управления.

Данная группа команд образует условные, безусловные переходы и обращения к подпрограммам.

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 записать в стек содержимое регистровой пары (для BC – PUSH B, для DE – PUSH D, для HL – PUSH H); команда выполняется следующим об­разом: а) УС уменьшается на "1"; б) (R) → OЗУ [УС-1]; в) УС уменьшается на "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, команда выполняется сле­дующим образом: а) меняется
Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.015 с.