Однобайтные пересылки

Для пересылок между регистрами процессора предназначены команды типа MOV r1,r2, в которых r1 – регистр приёмника, r2 – регистр источника. Приёмником или источником может быть любой регистр общего назначения процессора.

Пример 1.21

Адрес Число Мнемокод Комментарий

0800 78 MOV A,B; пересылка из регистра В в аккумулятор

0801 4C MOV C,H; пересылка из регистра H в регистр C

0802 55 MOV D,L; пересылка из регистра L в регистр D

Всё это короткие однобайтные по формату 5-тактовые команды. На их интерпретацию процессору требуется только один машинный цикл для выборки самой команды.

Для пересылок между регистрами процессора и памятью данных предназначены команды типа MOV r,M – для чтения памяти и MOV M,r – для записи памяти. В этих командах M – ячейка памяти, адрес которой будет взят из регистровой пары HL.

Пример 1.22

Адрес Число Мнемокод Комментарий

0800 56 MOV D,M; пересылка из ячейки M в регистр D

0801 71 MOV M,C; пересылка из регистра C в ячейку M

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

Есть и другие команды обеспечивающие пересылки между регистрами процессора и памятью данных. Их особенность в том, что регистром для обмена с памятью может быть только аккумулятор. Ячейка памяти может определятся:

· прямым адресом adr в командах типа LDA adr – чтение из памяти и STA adr – запись в память;

· косвенно через одну из двух возможных регистровых пар – BC или DE в командах LDAX B, LDAX D – чтение из памяти и в командах STAX B, STAX D – запись в память.

Пример 1.23.

Адрес Число Мнемокод Комментарий

0800 3A 00 0B LDA 0B00h; пересылка из ячейки адресом 0B00 в ре-;гистр A

0803 32 10 0B STA 0B10h; пересылка из A в ячейку с адресом 0B10

Это – медленные трёхбайтные 13-тактовые команды. Кроме трёх машинных циклов требуемых для чтения байтов команды, необходим ещё один цикл на выполнение операции пересылки.

Пример 1.24.

Адрес Число Мнемокод Комментарий

0800 1A LDAX D; пересылка из ячейки M(DE) в

; аккумулятор

0801 02 STAX B;пересылка из аккумулятора в ячейку;M(BC)

Эти команды занимают в памяти только один байт памяти. Они требуют на выполнение 7 машинных тактов и предварительного определения адреса в регистровой паре.

Для пересылок с целью записать в регистр процессора или в память какое-то непосредственно указанное число применяются команды типа MVI r,d8 – для записи в регистр и MVI M,d8 – для записи в память. В этих командах непосредственно указанное число обозначено в общем виде – d8, а ячейка памяти M определена косвенно через адрес в регистровой паре HL.

Пример 1.25.

Адрес Число Мнемокод Комментарий

0800 0E 45 MVI B,45h;пересылка числа 45 в регистр B

0802 36 6B MVI M,6Bh;пересылка числа 6B в ячейку памяти

;M(HL)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: