Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Көбейту командалары




MUL (multіply - көбейту) командасы таңбасыз сандарды көбейту үшін пайдаланылады. Команда пішімі:

MUL 1_операнд

Екінші көбейгкіш AL регистрінде (егер байттар көбейтілетін болса), AX регистрінде (егер сөздер көбейтілетін болса) немесе EAX регистрінде (егер қос сөздер көбейтілетін болса) орналасады. Бұл команданың іс-әрекеті бірінші көбейгкіштің (1_операндтың) өлшеміне тәуелді болады. 4-кестеде көбейткіштер өлшемінің және екінші көбейткіштің орналасуының, сондай-ақ, көбейту нәтижесінің вариантары келтірілген.

 

1-кесте – Көбейту кезіндегі операндтар мен нәтиженің орналасуы
1-ші көбейткіш 2-ші көбейткіш Нәтиже
Байт AL AX регистрінде 16 бит: AL – көбейтіндінің кіші (low) бөлігі; AH – көбейтіндінің үлкен (hіgh) бөлігі
Сөз AX DX:AX жұбында 32 бит: AX – көбейтіндінің кіші бөлігі; DX – көбейтіндінің үлкен бөлігі
Қос сөз EAX EDX:EAX жұбында 64 бит: EAX – көбейтіндінің кіші бөлігі; EDX – көбейтіндінің үлкен бөлігі

 

Егер 1_операнд байтқа тең болса, онда бірінші көбейткіш AL регистрінің мәнімен көбейтіледі, ал көбейтінді AX регистріне орналастырылады. Көбейту амалы орындалған кезде жалаушалар регистрінің CF және OF разрядтарының мәні өзгереді. Егер көбейтіндінің үлкен биттері ноль (яғни AH=0) болса, онда OF=0 және CF=0 (басқа жағдайда OF=1, CF=1) орнатылады.

1_операнд сөзге тең болған жағдайда бірінші көбейткіш AX регистрінің мәнімен көбейтіледі, ал көбейтінді DX және AX регистрлеріне орналастырылады. Егер көбейтіндінің үлкен биттері ноль (яғни DX=0) болса, онда OF=0 және CF=0 (басқа жағдайда OF=1, CF=1).

1_операнд қос сөзге тең болған жағдайда бірінші көбейткіш EAX регистрінің мәнімен көбейтіледі, ал көбейтінді EDX:EAX жұбына орналастырылады. Егер көбейтіндінің үлкен биттері ноль (яғни EDX=0) болса, онда OF=CF=0 (басқа жағдайда OF=1 және CF=1).

ІMUL (іnteger multіply - бүтін сандарды көбейту) командасы таңбалы сандарды көбейту үшін пайдаланылады. Команда пішімі:

ІMUL 1_операнд

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

Мысалдар:

MUL BX ; AX және BX регистрлері көбейтіліп, көбейтінді

; DX және AX регистрлеріне жазылады.

MUL M_BYTE ; AL регистрі мен жедел жады ұяшығы мәндері

; көбейтіліп, көбейтінді AH пен AL жазылады.

ІMUL DL ; AL және DL регистрлері көбейтіліп, көбейтінді

; AX регистріне жазылады.

MUL және ІMUL командаларында операнд ретінде мәнді тікелей пайдалануға болмайды. Сондықтан көбейту алдында мұндай мәнді регистрге немесе жады ұяшығына алдын ала жүктемелеу керек. Мысалы:

MOV DX,7

MUL DX

Осы екі команданың орындалу нәтижесінде AX регистрінің мәні жетіге көбейтіледі.


Поделиться:

Дата добавления: 2015-01-05; просмотров: 137; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты