Основы программирования микропроцессоров



Download 1,87 Mb.
bet30/119
Sana23.02.2022
Hajmi1,87 Mb.
#139915
TuriКонтрольные вопросы
1   ...   26   27   28   29   30   31   32   33   ...   119
Bog'liq
Системное программирование

5.2. Команды пересылки данных


Команда MOV пересылает содержимое источника (второго операнда) на место приёмника (первого операнда) (табл. 5.10). Флаги команда не изменяет. Пересылаемая величина извлекается из команды, регистра или ячейки памяти, а записывается в регистр или ячейку памяти. Пересылать одной командой двойное слово запрещено.
Инструкции с кодами операций 8C и 8E обеспечивают загрузку и извлечение информации из сегментных регистров. Занесение информации в регистр CS запрещено, т.к. регистровая пара CS:IP определяет адрес команды, которая должна быть выполнена следующей. Поэтому для этой цели необходимо использовать любую инструкцию дальнего (межсегментного) перехода (см. раздел 5.5).

Табл. 10. Команда MOV.



Код

Инструкция

Описание

88 /r

MOV r/m8, r8

Пересылка из r8 в r/m8.

89 /r

MOV r/m16, r16

Пересылка из r16 в r/m16.

8A /r

MOV r8, r/m8

Пересылка из r/m8 в r8.

8B /r

MOV r16, r/m16

Пересылка из r/m16 в r16.

8C /r

MOV r/m16, Sreg

Пересылка из Sreg в r/m16.

8E /r

MOV Sreg, r/m16

Пересылка из r/m16 в Sreg.

A0 ow

MOV AL, m8

Пересылка из m8 в AL.

A1 ow

MOV AX, m16

Пересылка из m16 в AX.

A2 ow

MOV m8, AL

Пересылка из AL в m8.

A3 ow

MOV m16, AX

Пересылка из AX в m16.

B0+rb

MOV r8, imm8

Пересылка imm8 в r8.

B8+rw

MOV r16, imm16

Пересылка imm16 в r16.

C6 /0

MOV r/m8, imm8

Пересылка imm8 в r/m8.

C7 /0

MOV r/m16, imm16

Пересылка imm16 в r/m16.

Командой MOV запрещена также пересылка из одной ячейки памяти в другую, из одного сегментного регистра в другой и запись непосредственного операнда в сегментный регистр. Если по алгоритму такое действие требуется выполнить, оно реализуется путем пересылки данных через несегментный регистр.
Например, записать число 100 в сегментный регистр DS можно так:

MOV АХ, 100


MOV DS, AX

Как правило, в команде MOV легко определить тип одного из операндов и размер пересылаемой величины, например:


MOV АХ, 300 ; пересылка слова


MOV AH, AL ; пересылка байта

В ряде случаев по операндам команды MOV нельзя определить размер пересылаемой величины. Пусть в регистре AX находится адрес некоторой ячейки памяти и требуется записать 0 в эту ячейку. Такое обнуление можно сделать с помощью команды:


MOV [AX], 0


Однако по этой команде нельзя определить, какого размера пересылаемый ноль, поскольку второй операнд может обозначать ноль размером в байт (00h) или размером в слово (0000h). Кроме того, адрес из регистра AX может быть также адресом ячейки как размером в байт, так и размером в слово (с одного и того же адреса могут начинаться ячейки разных размеров). Поэтому ассемблер зафиксирует ошибку, сообщая, что типы операндов неизвестны.


Для явного указания типов операндов команды используется оператор указания типа PTR:


<тип> PTR <выражение>

где <тип> – BYTE, WORD или DWORD, выражение может быть константным или адресным.


Если указано константное выражение, то оператор сообщает, что значение выражения (число) должно рассматриваться как величина указанного типа (размера); например, BYTE PTR 0 – ноль как байт, а WORD PTR 0 – ноль как слово.


Если в PTR указано адресное выражение, то оператор сообщает, что адрес, являющийся значением выражения, должен восприниматься ассемблером как адрес ячейки указанного типа, например: WORD PTR A – адрес A обозначает слово (байты с адресами A и A+1).
Вернемся к нашему примеру и запишем его корректно с использованием оператора PTR. При обнулении байта по адресу из регистра AX, то команда имеет вид:

MOV BYTE PTR [AX], 0 или MOV [AX], BYTE PTR 0


Если требуется переслать нулевое слово:


MOV WORD PTR [AX], 0 или MOV [AX], WORD PTR 0


Обычно принято уточнять тип операнда-адреса, а не тип непосредственного операнда.


Перестановку двух величин можно реализовать с помощью команды MOV, однако существует и специальная команда XCHG (табл. 11). Инструкция меняет местами содержимое своих операндов. Флаги команда не меняет.

Табл. 11. Команда XCHG.




Download 1,87 Mb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   119




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish