Debug программасында көбейту және бөлу амалдары

Біз көрдік қалай Debug программасы екі сайды қосты және алды. Енді бұл программаны көбейтіп және бөлгенін көреміз. Көбейту инструкциясы “MUL” деп аталады, ал машиналық код көбейту үшін АХ-тіВХ-Ғ7h E3h. Жадқа ендіргеннен алдын MUL инструкциясын қысқаша айтып кетейік.

MUL инструкциясы жауабын қай жерде сақтайды? АХ регистрінде ма? Тек ол жерде емес ; абай болу керек. Екі ноалты биттық санна көбейтсек 32 разрядты жауап береді, сондықтан MUL инструкциясы жауабын екі регистрде DХ және АХ-те сақтайды. Үлкен 16 бит DХ регистрінде орналасқан, ал кіші АХ регистрінде. Бұл регистрді былай жазсақ болады. DX:AX.

Debug программасына және микропроцесорге қайтайық. Ғ7h E3h көбейту инструкциясын енгізейік 0100 h адресіндегі дей қосу және бөлу инструкциясындағыдай, AX=7C4BhжәнеBX=100h. Сіздер инструкцияны “NUL BX”сияқты регистрін листитте көресіздер, АХ регистріне с…… . Сөзді көбейткенде микропроцессор әр қашан регистрді көбейтеді, аты инструкцияда көрсетілгендей. АХ регистріне, жауабын 2 регистрде сақтайды DX:AX.

Көбейту инструкциясын көбейтуден алдын, көбейтуді қолмен көбейтейік. Қалай санаймыз 100h* 7C4Bh?100h көбеиту деген ол ое алтылы санның оң жағына 3 нөлді жазамыз. Сонымен100h* 7C4Bh=7C4B000h. Бұл жауап ұзын бір сөйлемде сыйдыру үшін, сондықтан оны екі сөзге бөлеміз 007ch және 4B00h.Инструкцияны қосу үшін Debud қолданайық. Сіздер көресіздер. DX 007Ch сөзді, ал АХ 4В00h сөзді. Басқаша айтқанда микропроцессор DX:AX регистрінде сөздің көбейту инструкцияда жауабын қайтарады. Екі сөздің көбейту жауабы екі сөзден үлкен болмайды, бірақ көбіне бір сөзден үлкен болады. Сөзді көбейту инструкциясы жауабын екі регитде DX:AX деп қайтарады. Бөлген кезде не болады? Санды бөлген кезде микропроцессор жауапты да, бөлгеннен қалған қалдықты да сақтайды. F7h F3h инструкциясына көрсетейік 0100h адресінде (және 101h). NULинструкциясы сияқты, DIV DX:AXрегистрін қолданады, шыққан нәтижені“DIV BX”