Екілік сандарды азайту

Азайту командаларына келесілер жатады:

DEC операнд — декремент операциясы, операнд мәнін 1 кемітуді орындайды;

CMP қабылдағыш, таратқыш – салыстыру командасы. CMP командасы, SUB командасы сияқты, операндтарды азайтуды орындайды және белгілерді орнатады, бірақ нәтиже ешқайда жазылмайды. CMP командасымен орнатылатын белгілерді арнайы шартты ауысу командаларының көмегімен қадағалауға болады.

SUB қабылдағыш, таратқыш — азайту командасы; орындалу принципі:

қабылдағыш = қабылдағыш - таратқыш

SBB қабылдағыш, таратқыш — несиені еакере отырып азайту командасы (CF белгісі). Оның орындалу принципі:
қабылдағыш = қабылдағыш - таратқыш – CF.

SBB командасы ADC командасына ұқсас, бірақ енді CF белгісі несие индикаторының ролін атқарады, ол 1-ге тең болса, онда сандарды азайту кезінде үлкен разрядтан несие берілгендігін білдіреді.

Таңбасыз сандарды азайтудан кейін CF белгісін тексеру керек. Егер ол 1 тең болса, онда үлкен разрядтан несие берілгендігін және нәтиже қосымша кодта алынғандығын білдіреді.

Таңбалы сандарды азайтқан кезде, таңбалы сандарды қосу кезіндегідей мантиссаның өзгеруіне көңіл аударған жөн, яғни тікелген сан разряды операндтын таңбалық разрядын өзгертуі мүмкін, оны OF асатолу белгісімен тексеруге болады.. Ол белгінің 1 –ге орнатылуы, нәтиже берілген операнд өлшемі таңбалы сандар диапазонынан шығып кеткендігін (яғни үлкен бит өзгергендігін) білдіреді, сол үшін пайдаланушы нәтижені қалыпқа келтіру жағдайларын қарастыруы керек.

 

Сандарды көбейту

Таңбасыз сандарды көбейту командасы:

MUL операнд

Операнд жады ұяшығында немесе жалпы міндетті регистрдің бірінде орналаса, оның өлшемі 8, 16 немесе 32 бит болады. Командада бір ғана операнд көрсетілген. Екінші операнд көсетілмей берілген. Оның орны жасырын көбейткіш өлшеміне байланысты болады. Өйткені көбейту нәтижесі оның көбейткішнің өлшемінен бірнеші рет көп болғандықтан оны болжау үшін жасалған. Көбейткіштердің өлшемін және екінші операнд пен нәтижені орналастыратын регистрлер:

 

Байт * AL = AX
Сөз * AX = DX:AX
Екілік сөз * EAX = EDX:EAX

Таңбасыз бүтін сандарды көбейту командасы:

IMUL операнд

Бұл команда MUL командасына ұқсас. IMUL командасының ерекшелігі, ол таңбаны қалыптастырады. Егер нәтиже кішкентай болса және бір регистрге орналасса (яғни CF = OF = 0 болса), онда екінші регистрге (үлкен бөлікке) таңба жазылады— бұл регистрдің барлық биттері кіші бөліктің үлкен битінің (таңба разряды) мәнімен толтырылады.
Басқа жағдайда (егер CF = OF = 1) нәтиже таңбасы ретінде үлкен бөліктің таңба биті алынады.
i486 және одан жоғарғы микропроцессорларында IMUL командасы операндтарға орын берудің кең тараған түрлерін қолданады. Бұл қолдануға ыңғайлы болу үшін жасалған.

Деление чисел

Таңбасыз сандарды бөлу командасы:

 

DIV бөлінгіш

Бөлінгіш жады ұяшығында немесе жалпы міндетті регистрдің бірінде орналаса, оның өлшемі 8, 16 немесе 32 бит болады. Бөлгіштің орны көбейту командасындағыдай жасырын, ол да операнд өлшеміне байланысты болады. Бөлу командасының нәтижесі болып бөлінді мен қалдық мәндері табылады. Бөлу орындалған кездегі нәтиже мен операндтардың орналасуы:

 

Бөлінгіш Бөлгіш Бөлінді Қалдық
AX Байт (регистр немесе жады ұяшығы) AL AH
DX: AX Сөз (регистр немесе жады ұяшығы) AX DX
EDX: EAX Екілік сөз (регистр немесе жады ұяшығы) EAX EDX

 

Бөлу командасы орындалғаннан кейін белгілер өзгермейді, бірақ 0 нөмірлі «0-ге бөлу» үзуі, кездесуі мүмкін. DIV командасында 0-ге бөлу үзуі келесі жағдайларда болуы мүмкін:

- Бөлінгіш 0 тең;

- Бөлінді оған бөлінген разрядтық торға сыймайды.

Мысалы. Сандарды бөлу

del _b label bytedel dw 29876delt db 45...xor ax, ax;келесі екі команданы mov ax, del бір командасымен ауыстыруға болады.mov ah, del_b ; ah бөлінгіштің үлкен байты mov al, del_b+1 ; al бөлінгіштің кіші байты div delt ; al — бөлінді, ah — қалдық ...

таңбалы сандарды бөлу командасы:








Дата добавления: 2015-10-26; просмотров: 1512;


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

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

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

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