Непосредственная загрузка пары регистров

LXI ri, Данные ri <B3> < B1> ri
  ri+1 <B2> <B2> Мл. байт данных (7-0)
  <B3> Ст. байт данных (15-8)
   
           

ri код старшего регистра пары (B, D, H).

При ri = 110: SP <B3><B2>, то есть загружается указатель стека.

По этой команде в 16-разрядную пару регистровBC, DE или HL заносятся данные, содержащиеся во втором и третьем байтах команды, причем данные заносятся соответственно в младший и старший регистры пары. Это 3-х байтовая команда, выполняемая за три цикла (10 тактов). При выполнении команды содержимое триггеров признаков не меняется.

 

Пример:

0124) LXI H, 48A7

По этой команде данные, находящи­еся во втором байте команды (число А7 Н) будут переданы в регистр L, а число, записанное в третьем байте (48 Н) - в регистр Н. Содержимое ячеек памяти при этом не меняется, как и регистр признаков.

 

Адрес/регистр Код до выполнения операции Код после выполнения операции
A7 A7
H DE
L AD A7
PC

 

4.5.4 Запоминание/загрузка аккумулятора и пары HL

а)

STAX B [(B)(C)] (A) <B1>

б)

STAX D [(D)(E)] (A) <B1>

в)

LDAX B (A) [(B)(C)] <B1>

г)

LDAX D (A) [(D)(E)] <B1>
     

 

По командам группы а) и б) содержимое аккумулятора запоминается в оперативной памяти по адресу, хранимому в паре регистров ВС (а) или DE (б). По командам группы в) и г) содержимое оперативной памяти из ячейки, адресом которой является содержимое пары регистров ВС (в) или DE (г), загружается в аккумулятор.

Команды группы а - г являются однобайтовыми и выполняются за два машинных цикла (7 тактов). Для того, чтобы можно было воспользоваться этими командами, в соответствующую пару регистров необходимо предварительно загрузить нужный адрес.

 

 

Примеры:

00B1) STAX D

Адрес/регистр Код до выполнения операции Код после выполнения операции
00B1
А
D
E
E3
PC 00B1 00B2

По этой команде содержимое аккумулятора (A)=49H будет скопировано в ячейку памяти с адресом 6699 Н, хранимым в паре регистров DE.

0800) STAX B

Адрес/регистр Код до выполнения операции Код после выполнения операции
B 0A 0A
C
A
0A11 BE
FL
PC

0801) LDAX B

Адрес/регистр Код до выполнения операции Код после выполнения операции
0A 0A
B 0A 0A
C
A BE
0A11 BE BE
FL
PC

 


 

0802) LDAX D

Адрес/регистр Код до выполнения операции Код после выполнения операции
1A 1A
D
E
E3 E3
A E3
FL
PC

 

д)

STA Адрес [<B3><B2>] (A) <B1>
  <B2> Мл. байт адреса
  <B3> Ст. байт адреса

е)

LDA Адрес (A) [<B3><B2>] <B1>
  <B2> Мл. байт адреса
  <B3> Ст. байт адреса
   
           

 

По командам д) и е) содержимое аккумулятора запоминается в ячейке памяти, адрес которой приводится во втором и третьем байтах команды (д), или содержимое ячейки памяти, адрес которой приводится во втором и третьем байтах команды, передается в аккумулятор (е).

Команды этой группы трехбайтовые, выполняются за 4 цикла (13 тактов).

 


1F00) STA 0F1C

По этой команде содержимое аккумулятора скопируется в ячейке памяти с адресом 0F1C

Адрес/регистр Код до выполнения операции Код после выполнения операции
1F00
1F01 1C 1C
1F02 0F 0F
0F1C 2A
A
PC 1F00 1F03

 

После выполнения операции и в ячейке 0F1C и в аккумуляторе будет записано одно и то же число.

 

0803) LDA 0F1C

Адрес/регистр Код до выполнения операции Код после выполнения операции
1C 1C
0F 0F
0F1C 2A 2A
A 2A
PC
FL

 

 

ж)

SHLD Адрес [<B3><B2>] (L) <B1>
  [<B3><B2>+1] (H) <B2> Мл. байт адреса
  <B3> Ст. байт адреса

з)

LHLD Адрес (L) [<B3><B2>] <B1>
  (H) [<B3><B2>+1] <B2> Мл. байт адреса
  <B3> Ст. байт адреса
   
           

 

По командам этой группы происходит передача данных из пары регистров HL в две соседние ячейки оперативной памяти (ж) или в обратном направлении (з). 16-разрядный адрес первой ячейки приводится во втором и третьем байтах команды; адрес второй ячейки вычисляется в МП с помощью инкремента (увеличения на единицу) содержимого второго и третьего байтов команды.

Команды этой группы трехбайтовые, выполняются за 5 циклов(16 тактов). При выполнении этих команд содержимое триггеров признаков не изменяется.

0F41) SHLD 32AF

При выполнении этой команды содержимое пары регистров HL будет скопировано в соседних ячейках памяти 32AF и 32B0. При этом содержимое (HL) не изменяется.

Адрес/регистр Код до выполнения операции Код после выполнения операции
0F41
0F42 AF AF
0F43
32AF 4B 5D
32B0 8D 3F
H 3F 3F
L 5D 5D
PC 0F41 0F44

 

0806) LHLD 6AFF

Адрес/регистр Код до выполнения операции Код после выполнения операции
2A 2A
FF FF
6A 6A
H FD
L AF
6AFF
6B00 FD FD
FL
PC







Дата добавления: 2016-03-10; просмотров: 1181;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.