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



Download 1,87 Mb.
bet40/119
Sana23.02.2022
Hajmi1,87 Mb.
#139915
TuriКонтрольные вопросы
1   ...   36   37   38   39   40   41   42   43   ...   119
Bog'liq
Системное программирование

Код

Инструкция

Описание

F6 /5

IMUL r/m8

AX:= AL * r/m8

F7 /5

IMUL r/m16

DX, AX:= AX * r/m16

Расположение сомножителей соответствует команде MUL. Произведение имеет разрядность, вдвое превышающую разрядность множителей. Оно размещается в регистре AX (8-разрядные множители, 16-разрядный результат) или в регистровой паре DX:AX (16-разрядные множители, 32-разрядный результат, старшая часть в регистре DX, младшая – в AX).
Рассмотрим несколько примеров использования команд умножения:

N DB 10
...


MOV AL, 2
MUL N ; AX=2*10=20=0014h: AH=00h, AL=14h
MOV AL, 32
MUL N ; AX=32*10 = 320=0140h: AH=01h, AL=40h
MOV AX, 8
MOV BX, -1
IMUL BX ; (DX, AX) = -8=0FFFFFFF8h: DX=0FFFFh, AX=0FFF8h

С помощью анализа флагов переноса CF и переполнения OF выполняется проверка, умещается ли результат умножения в формат сомножителей:



  • произведение занимает двойной формат CF=OF=1;

  • произведению достаточен формат сомножителей CF=OF=0.

Во втором случае произведение байтов занимает только регистр AL, а произведение слов – только регистр АХ. Но если CF=1, то далее приходится работать с результатом как с числом удвоенного формата.
Начиная с процессора 80186, доступен упрощенный вариант команд умножения MUL и IMUL. Их мнемоника включает три операнда. Первый операнд может быть только регистром r16, второй операнд r/m16, третий операнд непосредственный imm16. Следовательно, команды позволяют оперировать только словами, и результат умножения также должен быть размером слово. Команды перемножают второй и третий операнды и помещают результат в регистр общего назначения. Такие расширения команд имеют и другие инструкции (см. команды сдвига и стековые команды).
Следует заметить, что трансляторы языка ассемблера TASM и MASM по умолчанию воспринимают только базовый набор команд процессора 8086. Чтобы сделать для них доступными расширения команд, введенные в более поздних моделях процессоров, например, в 80186, необходимо указывать специальные директивы.
Например, директива .8086 допускает использование только команд 8086, а директива .186 допускает использование команд процессора 8086 и новых команд процессора 80186. Директивы могут быть указаны в любом месте программы на языке ассемблера, и действовать они будут до появления следующей подобной директивы.
Инструкция AAM обеспечивает коррекцию результата умножения двух неупакованных двоично-десятичных чисел командой MUL (табл. 27). Флаги SF, ZF и PF устанавливаются по обычным правилам. Значение флагов OF, AF и CF не определено.
Табл. 27. Команда AAM.


Download 1,87 Mb.

Do'stlaringiz bilan baham:
1   ...   36   37   38   39   40   41   42   43   ...   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