Группа команд передачи данных
Эту группу условно можно разделить на 3 подгруппы:
- команды засылки константы;
- команды пересылки;
- команды чтения-записи.
Команды передачи данных обеспечивают пересылку данных между регистрами, между памятью и регистрами.
Рассмотрим формат передачи данных КОП DST, SRC.
КОП — код операции (число от 0 до 255).
DST — приемник информации.
SRC — источник информации.
Команды передачи данных при своем выполнении не изменяют значения флагового регистра.
Команды засылки константы
В результате выполнения команды засылки константы в регистр или регистровую пару загружается константа, содержащаяся во втором или во втором и третьем байтах команды. Рассмотри формат команд засылки констант:
Команда засылки 8 разрядной константы имеет формат
MVI DST,D8
где DST-любой из РОН (А, В, С, D, Е, Н, L) или ячейка памяти (М) адрес которой берется из регистровой пары НL; MVI — код операции; D8 - 8-разрядная константа, содержащаяся во втором байте команды.
Пример: пусть требуется загрузить в ячейку памяти с адресом 086016 число 3F.
Адрес | Команда | Содержание ячейки памяти | Комментарий |
MVI H | В регистр H засылается константа 1016 Н<-10 | ||
MVI L | В регистр L запишем младший байт адреса 05 (HL=100516) | ||
MVI M | В ячейку памяти адресуемую с помощью регистровой пары HL записываем число 3F16 | ||
3F | 3F |
Команда засылки 16 разрядной константы имеет формат
LXI RP,D16 где RP - регистровая пара В, D, Н или указатель стека SP;
D16-16-разрядная величина константы, причем младший байт константы находится во втором байте команды, а старший в третьем.
Пример: пусть требуется загрузить в ячейку памяти с адресом 1005 число 3F.
Адрес | Команда | Содержание ячейки памяти | Комментарий |
LXI H | В регистровую пару HL засылается константа 051016 причем в регистр H засылается 1016, а в регистр L - 0516 | ||
MVI M | В ячейку памяти, адресуемую с помощью регистровой пары HL записываем число 3F16 | ||
3F | 3F |
Команда пересылки данных
При выполнении команд пересылки содержимое источника SRC пересылается в приемник DST, при этом содержимое источника не изменяется. В качестве источника и приемника операндов может быть использован любой из регистров общего назначения или ячейка памяти, адресуемая через регистровую пару (Н, L). Пересылка данных типа "ПАМЯТЬ-ПАМЯТЬ" запрещена.
Формат команд пересылки MOV DST, SRC,
где DST, SRC-любой из РОН (А, В, С, D, Е, Н, L) или ячейка памяти (М), адресуемая через регистровую пару HL.
Пример переслать данные из ячейки с адресом 0860 в ячейку с адресом 0861.
Адрес | Команда | Содержание ячейки памяти | Комментарий |
LXI H | В регистровую пару HL засылается константа 086016 причем в регистр H засылается 0816, а в регистр L - 6016 | ||
MOV A,M | Пересылка данных из памяти в аккумулятор | ||
MVI L | Засылка в HL адреса 0861 | ||
MOV М,A | Передача данных из А в ячейку памяти с адресом 0861. |
К командам пересылки можно также отнести команду XCHG, в результате выполнения которой регистровые пары (Н, L) и (D, Е) обмениваются содержимым следующим образом:
H c D
L c E
Команды чтения-записи.
LDAX RP- чтение из памяти в аккумулятор содержимого ячейки памяти, адресуемой через регистровую пару BC или DE;
STAX RP- запись содержимого аккумулятора в ячейку памяти адресуемую через регистровую пару BC или DE;
Пример: необходимо записать в память по адресу 086016 число 3F16 с помощью команды STAX
Адрес | Команда | Содержание ячейки памяти | Комментарий |
LXI B | В регистровую пару HL засылается константа 051016 причем в регистр H засылается 1016, а в регистр L - 0516 | ||
MVI A | Засылка в A числа 3F | ||
3F | 3F | ||
STAX B | Пересылка данных из аккумулятора А в память. Адрес ячейки памяти определяется содержимым регистровой пары BC. |
LDAAdr-чтение содежимого ячейки памяти в аккумулятор, адрес ячейки памяти определяется 16-разрядным адресом Adr;
Адрес | Команда | Содержание ячейки памяти | Комментарий |
LDA | А <-M0801<-0801 Значок <- означает направление передачи. | ||
LHLD Adr - запись в регистровую пару НL содержимого двух последовательных ячеек памяти с адресами Adr и Adr+1, причем в регистр Н загружается содержимое ячейки по адресу Adr+1, а в регистр L - по адресу Adr;
Адрес | Команда | Содержание ячейки памяти | Комментарий |
LHLD | 2А | НL <-002А | |
SHLD Adr - запись содержимого регистровой парыНL в две последовательные ячейки памяти с адресами Adr и Adr+1, причем coдержимoe регистра Н записывается в ячейку с адресом Adr+1, а регистра L - в ячейку с адресом Adr.
Дата добавления: 2021-09-07; просмотров: 402;