- •Методы адресации памяти. Команды работы с памятью
- •"Цифровые и микропроцессорные устройства"
- •Методы адресации памяти. Команды работы с памятью
- •Поясните разницу между командами
- •Команды непосредственной записи в память
- •Команды чтения памяти по непосредственному адресу
- •Команды чтения-записи памяти при адресации через регистровую пару hl
- •Команды чтения/записи при адресации через регистровые пары bc, de.
- •Методы адресации памяти. Команды работы с памятью
Поясните разницу между командами
LDA 0B10H и LHLD 0B10H.
Укажите за сколько циклов и тактов выполняется команда MOV M,A и поясните какие действия выполняет МП в каждом цикле.
Поясните разницу между командами
STAX B и LDAX B.
9 Требования к знаниям и умениям студентов
В результате выполнения лабораторной работы студенты должны знать:
систему команд МП КР580ВМ80;
методы адресации к памяти;
назначение команд системной программы МОНИТОР УМК.
Должны уметь:
составлять программы, содержащие последовательности команд работы с памятью;
готовить к работе УМК;
вводить и выполнять программы в автоматическом режиме.
10 Методические указания
Теоретическое обоснование
Память представляется как последовательность ячеек размером в один байт. Каждая ячейка имеет свой адрес в диапазоне от 0 до 65535. Для удобства обычно используется шестнадцатеричное значение адреса, тогда диапазон адресации составляет 0000H…FFFFH.
В микропроцессорной системе применяется два метода адресации к памяти: непосредственная и косвенная.
При непосредственной адресации адрес ячейки памяти указывается в самой команде во втором и третьем байтах. В общем виде команда выглядит следующим образом:
КОП <B3B2>,
где КОП – код операции (чтение или запись), первый байт кода команды B1;
<B3B2> – адрес ячейки памяти;
<B3> – ст. байт адреса;
<B2> – мл. байт адреса;
В памяти такая команда будет размещена:
B1 (КОП),
B2,
B3,
т. е. после байта кода операции располагается сначала младший байт адреса, а затем – старший.
Косвенная адресация предполагает, что адрес ячейки памяти будет располагаться в регистровых парах HL, BC, DE. Для каждой конкретной команды работы с памятью закреплена своя регистровая пара. Таким образом, прежде чем выполнить такую команду, необходимо сначала задать адрес в соответствующей регистровой паре. Например:
LXI H, 0800H
MOV M,A ; запись в память содержимого регистра A по адресу HL.
LXI D, 0900H
STAX D ; запись в память содержимого регистра A по адресу DE.
Команды непосредственной записи в память
Существуют две команды непосредственной записи в память
STA <B3B2> – запись в память по непосредственному адресу <B3B2> содержимого регистра A;
SHLD <B3B2> – запись в память содержимого регистровой пары HL. Причём по адресу <B3B2> будет записано содержимое регистра L, а по адресу <B3B2>+1 будет записано содержимое регистра H.
Записать в память с адреса 0800H, используя команду системной программы МОНИТОР ПРОСМОТР И МОДИФИКАЦИЯ СОДЕРЖИМОГО ЯЧЕЕК ПАМЯТИ, коды команд, которые указанны в таблице 1.
Таблица 1 – Контрольная последовательность команд записи в память по непосредственному адресу
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0800 |
STA |
0880H |
32 80 08 |
; Запись в память сод. рег. A ; по адресу 0880H |
0803 |
SHLD |
0890H |
22 90 08 |
; Запись в память сод. рег. L ; по адресу 0890H, сод. рег. ; H по адресу 0891H |
0806 |
HLT |
|
76 |
; Останов |
Посредством команды МОНИТОРА ПРОСМОТР И МОДИФИКАЦИЯ СОДЕРЖИМОГО РЕГИСТРОВ установить значение регистров:
A=C7H, H=55H, L=AAH.
Выполнить контрольную последовательность команд, используя команду системной программы МОНИТОР СТАРТ ПРОГРАММЫ:
СТ0800 0806ВП.
Проверить содержимое ячеек памяти с адресами 0880H, 0890H, 0891H. Их значения должны быть:
[<0880H>]=C7H,
[<0890H>]=AAH,
[<0891H>]=55H.
Задание 1:
Написать и выполнить проверочную программу записи данных в память из рег. A, в соответствии с таблицей 2. Для этого использовать команду загрузки регистра A (MVI A, <B2>) и команду записи в память содержимого регистра A по непосредственному адресу (STA <B3B2>).
Таблица 2 – Данные для проверочной программы записи данных в память по непосредственному адресу
Адрес |
0900 |
0905 |
090C |
0912 |
Данные |
00 |
01 |
02 |
04 |
Проверочную программу записать в таблицу аналогичную по форме таблице 1 (начальный адрес проверочной программы 0A00H).
Проверить правильность работы программы, для этого проверить содержимое ячеек памяти, адреса которых указаны в таблице 2.