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



Download 1,87 Mb.
bet49/119
Sana23.02.2022
Hajmi1,87 Mb.
#139915
TuriКонтрольные вопросы
1   ...   45   46   47   48   49   50   51   52   ...   119
Bog'liq
Системное программирование

Код

Инструкция

Описание

D0 /5

SHR r/m8, 1

Логический сдвиг r/m8 вправо на 1 разряд.

D2 /5

SHR r/m8, CL

Логический сдвиг r/m8 вправо на CL разрядов.

D1 /5

SHR r/m16, 1

Логический сдвиг r/m16 вправо на 1 разряд.

D3 /5

SHR r/m16, CL

Логический сдвиг r/m16 вправо на CL разрядов.

Рассмотрим примеры логического сдвига:

MOV AL, 01000111b


SHL AL, 1 ; CF=0 AL=10001110b
MOV AL, 01000111b
SHR AL, 1 ; CF=1 AL=00100011b

Одно из основных применений команд логического сдвига – быстрое умножение и деление целых чисел на степени двойки. Такие операции можно выполнить с помощью команд умножения и деления, однако сдвигами они выполняются значительно быстрее. В общем случае умножение на 2k реализуется так:


; op=op*2k (op - число со знаком и без)


MOV CL, k
SHL op, CL

Сдвиг на k разрядов вправо есть отбрасывание последних k разрядов, что соответствует получению неполного частного (операции div) от деления на 2k:


; ор=ор div 2k (op - число без знака)


MOV CL, k
SHR op, CL

Отдельная команда сдвига позволяет умножить или разделить число на степени двойки, в то время как в комбинации с другими командами возможно реализовать операцию быстрого умножения и на другие числа.


Например, для умножения регистра AX на 10 можно выполнить следующие команды:

MOV BX, AX ; сохранить в BX содержимое регистра AX


SHL AX, 1 ; умножить AX на 2
SHL AX, 1 ; умножить AX на 4
ADD AX, BX ; умножить AX на 5
SHL AX, 1 ; умножить AX на 10

В следующем примере команда SHL используется для преобразования двух неупакованных двоично-десятичных чисел (старшая цифра находится в регистре BL, младшая – в регистре AL) в упакованное число в регистре AL:


MOV CL, 4 ; загрузить счетчик сдвига


SHL BL, CL ; сдвинуть старшую цифру влево на 4 бита
OR AL, BL ; объединить старшую и младшую цифры

Впоследствии команды простого сдвига дополнились еще двумя командами SHRD и SHLD. Они обеспечивают выполнение операций сдвига двойной точности. Команды имеют три операнда. Назначение первого операнда (приемника) и третьего операнда прежнее, а второй операнд (источник) должен быть только регистром и хранит старшую половину сдвигаемого числа. При выполнении сдвига по команде SHRD операнд-приемник дополняется разрядами операнда-приемника, начиная с самого старшего разряда, а по команде SHLD – начиная с самого младшего разряда.



Download 1,87 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   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