Команды передачи данных.
С помощью таких команд можно осуществить передачу данных от одного из регистров А, В, С, D, E, H и L к одному из регистров А, В, С, D, E, H и L. Кроме того, можно выбрать ячейку памяти М (1байт) микропроцессора, адресуясь к ней, как к одному из регистров. При этом для адресации памяти используется содержимое регистровой пары HL.
Есть еще одна возможность задать содержимое регистров: загрузить непосредственный операнд в выбранный регистр. Эти команды, однако, не позволяют выполнять запоминание в обратном направлении (не существует команд, по которым содержимое регистра могло бы быть помещено в поле операндов команды).
Формат команд:
(Метка:) MOV r1, r2 ; Комментарий r1 = A,B,C,D,E,H,L,M r2 = A,B,C,D,E,H,L,M. | Move data – передать данные |
При этом r1 определяет регистр или ячейку памяти, в которую производится запись, а r2 – регистр или ячейку памяти, из которых извлекается число или непосредственный операнд.
Если r1=r2 то команда является пустой. Вместо этой команды можно использовать команду NOP. Пустая команда ни при каких обстоятельствах не изменяет содержимого регистров, памяти и состояния МП.
(Метка:) MVI r,число ; Комментари) r = A,B,C,D,E,H,L,M | Move immediate data - Передать непосредственный операнд. |
По этой команде число, расположенное в поле операндов, заносится в регистр r.
Примеры:
M1: MOV A,B; <B>®<A>
M2: MOV M,A; <A>®<M> или <A>®<<HL>>
MOV B,M; <M>®<B> или <<HL>>®< B >.
MVI M, 12Q; 12Q®<M> или 12Q® <<HL>>.
Q – обозначает, что число в восьмеричной системе.
Пример: Передать содержимое ячейки 9В 73Н в регистр А; содержимое регистров Н и L не определено.
Выполнение:
MVI Н,9ВН ; <9B>® H
MVI L,73Н ; <73>®L
MОV А, М ; Выборка из памяти <HL>.
Команды регистровых операций
Команды регистровых операций занимают в памяти один байт. Они используются для того, чтобы содержимое того или иного регистра увеличить или уменьшить на единицу. Это относится к регистрам:
r = B, C, D, E, H, L.
Данные команды изменяют Z-, P- и S–биты состояния, хотя регистр А не участвует в операциях. Благодаря этому можно использовать названные регистры для организации программных циклов. Формат команд имеет следующий вид:
(Метка:) INR r ; Увеличить содержимое регистра на единицу (Increment register)
Пример:
INR C ; <C> + 1 ® <C>
DCR r ; Уменьшить содержимое регистра на 1 (Decrement register)
Для загрузки аккумулятора А содержимым ячейки памяти используются команды LDAX B и LDAX D.
LDAX B ; Загрузить Акк. Содержимым ячейки памяти, адрес
; которой находится в регистровой паре В,С (Load Akkumulator)
LDAX D ; <<D,E>> ® A. Обе эти команды однобайтные.
Команда LDA адрес загружает в Акк. Содержимое ячейки памяти, адресуемой вторым и третьим байтами команды.
[<B3> <B2>] ® A.
Команда запоминания STA адрес производит противоположную передачу:
A ® [<B3> <B2>] .
Дата добавления: 2016-02-09; просмотров: 1788;