Группа команд однобайтовых пересылок данных.




Внутренние межрегистровые пересылки осуществляются с помощью группы команд MOV R1, R, где R1 и R – любые внутренние 8-разрядные регистры микропроцессора или их содержимое. При выполнении этой команды содержимое регистра R пересылается в регистр R1, причем в регистре R сохраняется прежнее значение данных. Например, после выполнения команды MOV С,А данные из регистра А будут переписаны в регистр С. При этом в регистре А данные не изменяются.

В качестве R1 или R может быть также определена ячейка памяти, адрес которой находится в регистровой паре HL. Например, по команде MOV С, М произойдет пересылка данных из ячейки памяти с адресом, записанным в регистровой паре HL во внутренний регистр С микропроцессора. Содержимое ячейки памяти М при этом не изменяется. Другой пример: по команде MOV М, Е данные из регистра Е запишутся в ячейку памяти М, адресуемую через содержимое регистровой пары HL, а данные в регистре Е останутся неизменными.

Для пересылок данных между аккумулятором и ячейками памяти в качестве адреса ячейки памяти может быть использовано также содержимое регистровых пар ВС или DE. Тогда для записи в память данных из аккумулятора используются однобайтовые команды STAX B или STAX D, а при обратной пересылке – LDAX B или LDAX D. Адрес ячейки памяти для обмена с аккумулятором можно задать также с помощью трехбайтовых команд с непосредственной адресацией. В этом случае для записи данных из аккумулятора в память служит команда STA ADR, для обратной пересылки – LDA ADR.

С помощью двухбайтовой команды MV1 R,D8 (R – буквенное наименование регистра или ячейки памяти, адресуемой по содержимому HL) можно записать операнд в любой 8-разрядный регистр микропроцессора или ячейку памяти. Операндом здесь будет содержимое второго байта команды.

Команда SPHL позволяет занести адрес из регистровой пары HL в указатель стека SP.

Группа команд двухбайтовых пересылок данных. Трехбайтовые команды LXI B,D16, LXI D,D16, LXI H,D16 служат для непосредственной записи в соответствующие регистровые пары 16-разрядного операнда D16.

Используя команды SHLD ADR, LHLD ADR, можно организовать пересылки данных между регистровой парой HL и ячейкой памяти, посредственно адресуемой по содержимому второго и третьего байта команды. Остальные команды этой группы осуществляют пересылки с адресацией по указателю стека SP. С помощью команд PUSH B, PUSH D и PUSH H содержимое регистровых пар BC, DE и HL засылается в стек. По команде PUSH PSW в стек засылаются данные из аккумулятора и регистра признаков. Команды РОР В, РОР D, РОР Н служат для пересылки 16-разрядного слова из ячеек памяти, адресуемых указателем стека SP в соответствующую пару регистров. Командой РОР PSW данные из стека пересылаются в аккумулятор и регистр признаков F. Таким образом, команда РОР PSW может изменять все биты регистра признаков F.

Группа команд ввода-вывода.

С помощью команды ввода IN N можно переписать байт данных в регистр A микропроцессора из одного из 256 портов ввода. Номер порта определяется вторым байтом команды.

Аналогично по команде вывода OUT N байт данных из регистра A микропроцессора будет переписан в любой из 256 портов вывода, адресуемых вторым байтом команды.

Группа команд обмена. В этой группе также всего две команды:

XCHG – команда для обмена содержимым между регистровыми парами HL и DE,

XTHL – команда для обмена содержимым между регистровой парой HL и ячейками памяти, адресуемых по указателю стека SP.

Группа команд арифметических и логических операций с одним операндом. С помощью команды СМС можно изменить значение бита признака переноса на противоположное, т.е. инвертировать признак переноса. Команда STC позволяет установить значение признака переноса в 1. Значения всех битов в регистре A можно инвертировать, применив команду CМA.

Команда DAA предназначена для выполнения двоично-десятичного сложения.

Очень часто при написании программ используются команды INR R, DEC R, INX YZ, DCX YZ, служащие для увеличения или уменьшения значения содержимого регистра, ячейки памяти или регистровой пары на единицу.

Группа команд арифметических и логических операций с двумя операндами. Перед началом выполнения любой команды из этой группы один из операндов должен быть помещен в регистр А, а другой операнд (если команда однобайтовая) в один из 8-разрядных внутренних регистров микропроцессора или ячейку памяти, адресуемую содержимым регистровой пары HL. В двухбайтовой команде значение операнда непосредственно задается во втором байте команды. Результат выполнения команды помещается в регистр А.

Команды ADD R или ADI D8 позволяют сложить два операнда. Сложение двух операндов со значением бита переноса C происходит по команде ADC R или AC1 D8. Вычитание из аккумулятора второго операнда и учет значения бита заема C производится соответственно командами SUB R, SUI D8, SBB R или SBI D8.

Операции поразрядного логического умножения (операция И, обозначается знаком Ù) содержимого аккумулятора с вторым операндом происходит при выполнении команды ANA R или ANI D8. При этом результатом выполнения команды является 8-разрядное двоичное число, отдельные разряды которого равны 1 только тогда, когда соответствующие разряды у обоих операндов также равны 1.

При выполнении поразрядного логического сложения (операция ИЛИ, обозначается знаком Ú) с помощью команд ORA R или ORA D8 образуется двоичное число, отдельные разряды которого равны 1 в случае, когда соответствующие разряды какого-либо одного или обоих операндов также равны 1.

Результатом выполнения операции ИСКЛЮЧАЮШЕГО ИЛИ (обозначается знаком). Командами XRA R или XR1 D8 является байт, отдельные разряды которого равны 1 только тогда, когда соответствующие разряды операндов имеют противоположные значения.

После выполнения рассмотренных команд логической обработки двух операндов значения признаков С и АС регистра признаков F всегда равны 0.

Команды СМР R или СРI D8 позволяют сравнивать два операнда. Сравнение происходит вычитанием из первого операнда, хранящегося в аккумуляторе, второго. Если в результате операции вычитания окажется, что операнды равны, то признак нуля Z устанавливается в 1, если же значение операнда, хранимого в аккумуляторе, меньше значения второго операнда, то устанавливается в 1 признак переноса С.

Есть в системе команд микропроцессора команды DAD B, DAD D, DAD H, DAD SP, позволяющие сложить два 16-разрядных числа. Одно из этих чисел должно быть записано в регистровую пару LH, а другое – в регистровую пару BC, DE, HL или SP. Результат сложения помещается в пару HL.

Группа команд сдвигов содержимого аккумулятора. В операциях сдвига участвует бит переноса С регистра признаков F. Под воздействием каждой из этих команд происходит сдвиг содержимого аккумулятора только на один разряд. Если необходимо сдвинуть содержимое аккумулятора на большее число разрядов, то команду сдвига необходимо повторить требуемое число раз.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: