Введение в микропроцессоры. Конспект лекций по курсу "Микропроцессорные устройства", страница 19

У команды CALL адрес перехода принадлежит самой команде, поэтому она трехбайтная и позволяет вызвать подпрограмму, находящуюся в любой точке адресного пространства МП. Все команды RST i однобайтные и адрес перехода кодируется значением операнда i. Это видно из формата КОП: 11iii111. Поэтому командам рестарта доступны всего восемь адресов, значения которых вычисляются по формуле 8 * i, 3:12:1

б) косвенный регистровый метод адресации

RET - безусловный возврат из обработчика прерывания или подпрограммы, (PCL):= [(SP)], (PCH):= [(SP) + 1], (SP):= (SP) + 2, 3:10:1;

Rxx - условный возврат из обработчика прерывания или подпрограммы, команда проверяет условие хх и если последнее выполнено, то следует возврат, в противном случае - переход на следующую команду. Если необходимо сделать возврат, то выполняется: (PCL):= [(SP)], (PCH):= [(SP) + 1], (SP):= (SP) + 2. Проверяемые условия такие же, как и при выполнении условного перехода (за исключением AS/NAS, см. п. 2.8.7). Таким образом, возможны следующие команды условного возврата: RP/RM, RZ/RNZ, RPE/RPO, RC/RNC, 1/3:6/12:1

2.8.9. Команды ввода/вывода

Все команды ввода/вывода адресуются к адресному пространству портов ввода/вывода и используют прямой метод адресации.

IN Port - команда ввода байта в аккумулятор из внешнего регистра (порта) с однобайтным адресом Port, который является частью команды - (А):= [Port]. Размер адреса позволяет вводить данные из 256-ти портов, 3:10:2;

OUT Port - команда вывода байта из аккумулятора во внешний регистр (порт) с однобайтным адресом Port, который является частью команды - [Port]:= (А). Размер адреса позволяет выводить данные в 256-ть портов, 3:10:2

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

а) регистровый метод адресации

ADD RGS - сложение содержимого аккумулятора с содержимым RGS, результат сохраняется в аккумуляторе, (А):= (А) + (RGS), 1:4:1;

ADC RGS - то же самое с учетом переноса CY, (А):= (А) + (RGS) + CY, 1:4:1;

SUB RGS - вычитание содержимого RGS из содержимого аккумулятора , результат сохраняется в аккумуляторе, (А):= (А) - (RGS), 1:4:1;

SBB RGS - то же самое с учетом заема CY, (А):= (А) - (RGS) - CY, 1:4:1;

DAD RP, где RP = B, D, H, SP - сложение содержимого регистровой пары HL c содержимым регистровой пары RP, результат сохраняется в регистровой паре HL, (HL):= (HL) + (RP), 3:10:1;

DSUB - вычитание содержимого регистровой пары ВС из содержимого регистровой пары HL, результат сохраняется в HL, (HL):= (HL) - (ВС) (от­сут­ст­ву­ет в системе команд МП 8080), 3:10:1;

INR RGD - увеличение содержимого RGD на единицу, (RGD):= (RGD) + 1, 1:4:1;

DCR RGD - уменьшение содержимого RGD на единицу, (RGD):= (RGD) - 1, 1:4:1;

INX RP, где RP = B, D, H, SP - увеличение содержимого регистровой пары RP на единицу, (RP):= (RP) + 1, 1:6:1;

DCX RP, где RP = B, D, H, SP - уменьшение содержимого регистровой пары RP на единицу, (RP):= (RP) - 1, 1:6:1

б) непосредственный метод адресации

ADI D8 - сложение содержимого аккумулятора с непосредственным операндом D8, результат сохраняется в аккумуляторе, (А):= (А) + D8, 2:7:2;

ACI D8 - то же самое с учетом переноса CY, (А):= (А) + D8 + CY, 2:7:2;

SUI D8 - вычитание непосредственного операнда D8 из содержимого аккумулятора , результат сохраняется в аккумуляторе, (А):= (А) - D8, 2:7:2;

SBI D8 - то же самое с учетом заема CY, (А):= (А) - D8 - CY, 2:7:2

в) косвенный регистровый метод адресации

ADD М - сложение содержимого аккумулятора с содержимым ячейки памяти, адрес которой находится в регистровой паре HL, результат сохраняется в аккумуляторе, (А):= (А) + [(HL)], 2:7:1;

ADC M - то же самое с учетом переноса CY, (А):= (А) + [(HL)] + CY, 2:7:1;

SUB M - вычитание содержимого ячейки памяти, адрес которой находится в регистровой паре HL, из содержимого аккумулятора, результат сохраняется в аккумуляторе, (А):= (А) - [(HL)] , 2:7:1;

SBB M - то же самое с учетом заема CY, (А):= (А) - [(HL)] - CY, 2:7:1;

INR M - увеличение содержимого ячейки памяти на единицу, адрес которой находится в регистровой паре HL, на единицу, [(HL)]:= [(HL)] + 1, 3:10:1;