- •Методы адресации памяти. Команды работы с памятью
- •"Цифровые и микропроцессорные устройства"
- •Методы адресации памяти. Команды работы с памятью
- •Поясните разницу между командами
- •Команды непосредственной записи в память
- •Команды чтения памяти по непосредственному адресу
- •Команды чтения-записи памяти при адресации через регистровую пару hl
- •Команды чтения/записи при адресации через регистровые пары bc, de.
- •Методы адресации памяти. Команды работы с памятью
Команды чтения памяти по непосредственному адресу
Аналогично командам непосредственной записи существует две команды непосредственного чтения памяти:
LDA <B3B2> – чтение памяти по непосредственному адресу <B3B2> в рег. A;
LHLD <B3B2> – чтение памяти по непосредственному адресу <B3B2> в рег. пару HL. При этом в рег. L будет записано содержимое ячейки с адресом <B3B2>, в рег. H – содержимое ячейки с адресом <B3B2>+1.
Записать в память с адреса 0810H, коды последовательности команд, которые указаны в таблице 3.
Таблица 3 – Контрольная последовательность команд чтения памяти по непосредственному адресу
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0810 |
LDA |
0880H |
3A 80 08 |
; Чтение в рег. A содержи- ; мого ячейки с адресом ; 0880H |
0813 |
LHLD |
0890H |
2A 90 08 |
; Чтение в рег. L содержи- ; мого ячейки с адресом ; 0890H, в рег. H сод. ячейки с адресом 0891H. |
0816 |
HLT |
|
76 |
; Останов |
Выполнить эти команды:
СТ0810 0816ВП.
Проверить содержимое регистров. Должно быть:
(A)=C7H
(H)=55H
(L)=AAH
Задание 2:
Написать и выполнить программу загрузки регистров B, C, D, E из памяти в соответствии с таблицей 4. Используйте команды чтения памяти в рег. A по непосредственному адресу (LDA <B3B2>) и команды пересылки (MOV ri, A)
Таблица 4 – Данные для проверочной последовательности команд чтения памяти по непосредственному адресу в рег. A
Адрес |
0900 |
0905 |
090C |
0912 |
Регистр |
B |
C |
D |
E |
Должно быть |
00 |
01 |
02 |
04 |
Проверочную программу чтения памяти в рег. А по непосредственному адресу записать в таблицу аналогичную по форме таблице 3 (начальный адрес проверочной программы 0A20H).
Проверить правильность работы программы, для этого проверить содержимое регистров, указанных в таблице 4.
Команды чтения-записи памяти при адресации через регистровую пару hl
Общий вид команды:
MOV M, ri – запись в память содержимого регистра;
MOV ri, M – загрузка регистра из памяти;
где ri –регистр общего назначения: A, B, C, D, E, H, L.
Записать в память с адреса 0820H, коды команд программы, которая указана в таблице 5.
Таблица 5 – Контрольная программа записи памяти при адресации через регистровую пару HL
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0820 |
MVI |
A, AAH |
3E AA |
; Загрузка регистра А |
0822 |
MVI |
B, BBH |
06 BB |
; Загрузка регистра В |
0824 |
MVI |
C, CCH |
0E CC |
; Загрузка регистра С |
0826 |
LXI |
H, 0921H |
21 21 09 |
; Загр. HL0921H, адрес M |
0829 |
MOV |
M, A |
77 |
; Зп. M(A), по адресу HL |
082A |
LXI |
H, 0922H |
21 22 09 |
; и т. д. |
082D |
MOV |
M, C |
71 |
; |
082E |
LXI |
H, 0923H |
21 23 09 |
; |
0831 |
MOV |
M, B |
70 |
; |
0832 |
LXI |
H, 0924H |
21 24 09 |
; |
0835 |
MOV |
M, H |
74 |
; |
0836 |
LXI |
H, 0925H |
21 25 09 |
; |
0839 |
MOV |
M, L |
75 |
; |
083A |
HLT |
|
76 |
; Останов |
Выполнить эту последовательность команд:
СТ0820 083AВП.
Проверить правильность выполнения программы. Значения ячеек памяти должны быть:
[<0921H>]=AAH
[<0922H>]=CCH
[<0923H>]=BBH
[<0924H>]=09H
[<0925H>]=25H
Записать в память с адреса 0840H коды команд программы, которая указана в таблице 6.
Таблица 6 – Контрольная программа чтения памяти при адресации через регистровую пару HL
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0840 |
LXI |
H, 0921H |
21 21 09 |
; Загр. HL=0921H, адрес M |
0843 |
MOV |
E, M |
5E |
; Чт. E(M), по адресу HL |
0844 |
LXI |
H, 0922H |
21 22 09 |
; И т. д. |
0847 |
MOV |
D, M |
56 |
; |
0848 |
LXI |
H, 0923H |
21 23 09 |
; |
084B |
MOV |
C, M |
4E |
; |
084C |
LXI |
H, 0924H |
21 24 09 |
; |
084F |
MOV |
H, M |
66 |
; |
0850 |
LXI |
H, 0925H |
21 25 09 |
; |
0853 |
MOV |
L, M |
6E |
; |
0854 |
HLT |
|
76 |
; Останов |
Выполнить эту последовательность команд:
СТ0840 0854ВП.
Проверить содержимое регистров. Должно быть:
(C)=BBH
(D)=CCH
(E)=AAH
(H)=09H
(L)=25H
Задание 3:
Написать и выполнить программу записи в память содержимого регистров в соответствии с таблицей 7.
Таблица 7 – Данные для проверочной программы записи в память при адресации через регистровую пару HL
Регистр |
Адрес ячейки памяти |
Содержимое |
A |
0930 |
FF |
B |
0931 |
EF |
C |
0932 |
DF |
D |
0933 |
CF |
E |
0934 |
BF |
H |
0935 |
09 |
L |
0936 |
36 |
Проверочную программу записать в таблицу, аналогичную по форме таблице 5 (начальный адрес проверочной программы 0A50H).
Проверить содержимое ячеек памяти по данным таблицы 7.
Задание 4:
Написать и выполнить программу чтения содержимого памяти по данным таблицы 8.
Таблица 8 – Данные для проверочной программы чтения памяти при адресации через регистровую пару HL
Регистр |
Адрес ячейки памяти |
Содержимое |
Должно быть |
B |
0930 |
|
FF |
C |
0931 |
|
EF |
D |
0932 |
|
DF |
E |
0933 |
|
CF |
A |
0934 |
|
BF |
H |
0935 |
|
09 |
L |
0936 |
|
36 |
Проверочную программу записать в таблицу, аналогичную по форме таблице 6 (начальный адрес проверочной программы 0A70H).
Проверить содержимое регистров и заполнить таблицу 8.