Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование ассемблер(лекция).doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
798.72 Кб
Скачать

Дәріс №7. І80х86 микропроцессор командалар жүйесіне шолу. Арифметикалық командалар Екілік сандарды қосу

Микропроцессор қосуды екілік сандарды қосу тәртібі бойынша орындайды. Нәтиженің разрядты тор сыртына шығып кетуі тасымал белгісінің CF өзгеруімен ерекшелінеді. Бұл қосу орындалғаннан кейін CF белгісінде орналастырылатын код.

Микропроцессор командалар жүйесінде екілік қосу командасының үш түрі бар:

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

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

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

ADC қабылдағыш, таратқыш — CF тасымалы бар қосу командасы, орындалу принципі:

қабылдағыш = қабылдағыш + таратқыш + CF

Сандарды қосу мысалдарын қарастырайық

; Сандарды қосу

a db 254

xor AX, AX

add AL, 17

add AL, a

jnc m1 ; егер тасымал болмаса, онда m1 өтіңіз!

adc AH,0 ; ax тасымалы ескерілген қосынды

m1: ...

Микропроцессор сандардың таңбасы бар ма, жоқ па екендігін ажыратпайды. Оның орнына есептеу процесі кезінде мұндай жағдайларды қадағалап отыратын құралдары бар. Оларға келесілер жатады:

- CF тасымал белгісі, бұл белгі 1-ге тең болса, онда операндтар разрядтылық сыртына шығып кеткендігін білдіреді;

- ADC командасы, бұл да разрядтылықтан аспауды қадағалайды (кіші разрядтан болатын тасымал).

- OF асатолу белгісінің көмегімен тексеріледі, операндтың үлкен разрядының күйін қадағалайды.

Микропроцессор сандардың таңбасын ажыратпағандықтан сандармен орындалатын барлық жағдайларының дұрыс болуына пайдаланушы өзі жауапты болып есептелінеді. CF және OF белгілерін JC\JNC және JO\JNO сәйкесінше шарты ауысу командаларының көмегімен қадағалауға болады.

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

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

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

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

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

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

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

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

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

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