Виды машинных циклов. Слово состояния процессора. Слово состояния МП КР580ВМ80А. Ввод-вывод в режиме прерывания. Алгоритм обслуживания прерываний, страница 11

К командам с регистровой адресацией относятся также команды взаимного обмена содержимым регистровых пар XCHG и загрузки счетчика команд и указателя стека содержимым регистровой пары Н - PCHL и SPHL.

В командах перемещения данных между регистрами и памятью используется косвенно-регистровый способ адресации – в КОП содержится код регистровой пары, хранящей адрес ячейки памяти, в которую пересылаются или из которой принимаются данные. В качестве такого указателя адреса памяти является регистровая пара Н. Следовательно, чтобы переслать содержимое регистра в память (и наоборот) предварительно необходимо занести в регистровую пару Н адрес нужной ячейки памяти. В мнемонике команды указывается имя регистра, участвующего в операции пересылки, и как бы фиктивный регистр М (Memory), указывающий, что в процессе пересылки участвует ячейка памяти. Например, MOV B,M означает "переслать содержимое ячейки памяти, адрес которой указан в регистровой паре Н, в регистр B". Команда MOV M,B аналогична предыдущей, только перемещение данных происходит в обратном направлении - из регистра в память. К этому классу команд можно отнести и команды перемещения данных между аккумулятором и памятью LDAX и STAX и запоминания содержимого регистровой пары Н в памяти XTHL.

К командам перемещения с непосредственной адресацией относятся команды непосредственной загрузки регистров данными, содержащимися во втором байте команды (т.е. эти команды двухбайтовые). Так как по-английски непосредственная адресация будет Immediate Addressing, в мнемонике этих команд обязательно есть буква I, стоящая на последнем месте. Примеры таких команд – команды MVI r,data(содержимое второго байта команды, обозначенное здесь как data, передать в регистр, имя которого указывается вместо r) и MVI M,data (содержимое второго байта команды передать в ячейку памяти, адресуемую регистровой парой Н). Сюда же следует отнести команду непосредственной загрузки регистровых пар LXI rp,data 16 вторым и третьим байтами команды. Кстати, наличие на последнем месте буквы I в мнемонике арифметических и логических команд также говорит о том, что вторым операндом, участвующим в операции, является второй байт команды (т.е. также непосредственная адресация).

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

4.3.3. Команды арифметических операций

Основными арифметическими командами являются сложение и вычитание двоичных чисел. Одно слагаемое при сложении и уменьшаемое при вычитании всегда находится в аккумуляторе, а второй операнд – в одном из регистров (команды ADD r, SUB r), в памяти (ADD M, SUB M) или непосредственно в теле команды (во втором байте – ADI, SUI). Результат помещается в аккумулятор. Для выполнения арифметических операций с многобайтными числами имеются команды сложения, учитывающие бит переноса из младших разрядов (ADC, ACI), и вычитания, учитывающие заём из старших разрядов (SBB, SBI). К арифметическим командам можно отнести и команды инкрементирования, то есть увеличения на единицу, и декрементирования (уменьшения на единицу) содержимого регистров и ячеек памяти (INR и DCR) и регистровых пар (INX и DCX). Результат сложения командой DAA можно представить числом в двоично-десятичном коде (коде BCD). Все команды арифметических операций воздействуют на регистр признаков F.

4.3.4. Команды логических операций

АЛУ микропроцессора обеспечивает выполнение основных логических операций ИИЛИИСКЛЮЧАЮЩЕЕ ИЛИ. Операции поразрядные, т.е. выполняются независимо друг от друга для всех восьми битов операндов. Один из операндов всегда находится в аккумуляторе, второй – в одном из регистров (команды ANA rORA rXRA r), памяти (ANA MORA MXRA M) или непосредственно в теле команды вторым байтом (ANIORIXRI). Результаты операций помещаются в аккумулятор. Все операции воздействуют на триггеры состояния регистра признаков F (кроме триггера переноса С, который всегда принудительно сбрасывается в ноль).