- •1.Ассемблер тілінің кемшілігі және артықшылығы. Макрокоманда қызметін ашыңыз және мысалмен түсіндіріңіз.
- •2.Биттермен жұмыс жасау командаларының қолдануын кодпен түсіндіріңіз. Ассемблерде Windows үшін бағдарламалау қалай орындалады.
- •3.Қолданушы регистрлерімен сегменттік регистрлерді салыстыра отырып талдау жасаңыз. Жауабыңызды дәлелдеңіз.
- •4.Командалар жүйесіне анықтама беріңіз. Деректерді жіберу командаларын қолдануын кодпен түсіндіріңіз. Қолдану режимі және ядро режимін салыстырыңыз.
- •5.Процессордың командалар жүйесіндегі командаларды ашыңыз және айырмашылықтарымен қызметтерін көрсетіңіз. Басқа драйверлермен ядро режиміндегі ең қарапайым драйверді салыстырыңыз.
- •7.Жалаулы регистр мен жүйелік жалаулар арасындағы байланысты табыңыз. Мысал келтіріңіз.
- •8.Бағдарламаны басқаратын командалар. Процессорды басқаратын командалар.
- •9.Басқа бағдарламалау тілдерінен айырмашылғын аша отырып жүйелік бағдарламалаудың жалпы мінездемесін сипаттаңыз.
3.Қолданушы регистрлерімен сегменттік регистрлерді салыстыра отырып талдау жасаңыз. Жауабыңызды дәлелдеңіз.
Процессор арифметикалық есептеулерді қамтамасыз ететін, жадыны адрестеуге, орындалып жатқан бағдарламаны басқару үшін қолданылатын 14 регистрлерден тұрады. Әр регистр бір сөзде 16 бит ұзындықтан тұрады және оларды аттары бойынша адрестейді Соның ішінде қолданушы регистірлерге :AX,BХ,CX,DX,SI,DI,SP,BP регистрлері жатады. Ал Сегмент деп 16-ға еселенетін адрестен басталатын аймақты айтамыз. Бағдарламаның орындалуында процессор 3 басты сегменттерді анықтайды: 1. Кодтар сегменті, 2. Мәліметтер сегменті, 3. Стек сегменті. Оларға жеке жеке талдау жүргізетін болсақ:
Ax регистірі-сумматор, енгізу шығаруды жүзеге асырады, кейбір арифметикалық операторларда қолданылады, кодты генерациялайды.
ВХ регистірі-бұл базалық регистір, жалпы тағайындау регистірінің ішіндегі адресстеу үшін индекстеу ретінде қолдануға болатын жалғыз регистр.
СХ регистірі –счетчик, есептеуіш, циклдің қайталануы және оңға немесе солға жылжыту үшін қолданылатын есептеуіш.
ДХ регистірі- деректер регистірі болып табылады, енгізу-шығару операцияларында қолданылады, үлген сандарды бөлуге көбейтуге қолданамыз.
SP,BP-регистірлік көрсеткіштер –бұлар жүйенің стек сегментінде деректерді пайдалануға мүмкіндік береді. SP- стек көрсеткіші жадыдағы стекті қолдануға , адресстерді және мәліметтерді уақытша сақтауға мүмкіндік береді.
BP-деректер қоры көрсеткіші, параметрлерді пайдалануды жеңілдетеді.
SI,DI- индекстік көрсеткіштер. SI-деректер қорының индексі болып табылады, жолдармен жұмыс жасауға қолданылады. DI – бұл адресс тағайыдау индексі болып табылады.Сонымен қатар операциялар үшін қолданылады.
Ал сегменттік регистрлерге жеке-жеке талдау жүргізетін болсақ:
1. Кодтар сегменті. Ол орындалатын машиналық командалардан тұрады. Әдетте бірінші орындалатын команда осы сегменттің басында тұрады да, ОЖ басқаруға берілген сегмент адресі бойынша бағдарламаны орындалу үшін жібереді. Бұл сегменттің бастапқы адресі (CS) кодтар сегменттерінің регистрінде орналасады.
2. Мәліметтер сегменті. Ол бағдарлама жұмыс жасауға қажетті тұрақтылардан, мәліметтерден тұрады. Оның бастапқы адресі мәліметтер сегменттерінің (DS) регистрінде орналасқан.
3. Стек сегменті. Стек операциялық жүйеге басты ішкі бағдарламаларды бағдарламаға қайтаруда, оларды шақыртуға қолданылатындағыдай қайтару адрестерінен тұрады. Стек сегментінің регистрі (SS) берілген сегментті адрестеп отырады. Сегментті регистрдің тағы бір түрі бар, ол–ерекше жағдайларда қоланылатын – қосымша сегмент регистрі (ES). Осы барлық сегменттер шиналық интерфейстерде орналасады. Бағдарлама ішінде барлық жады адрестері сегменттің басынан тәуелді болып келеді. Мұндай адрестерді сегмент басына бастап жылжыту деп атайды. Екібайттық жылжу 0000H-тан FFFFH (0 - ден 65535 – ке дейін) дейінгі аралықта болуы мүмкін, сондықтан сегмент сиымдылығы 64 Кб аспайды.
Сегменттік регистрлер қолданушы регистрлермен бірге жадқа қатынауды жүзеге асырады. Мысалы, егер біз 12345h (он алтылық жүйеде) физикалық адресіндегі жадқа қатынағымыз келсе, біз DS = 1230hжәне SI = 0045h мәндерін береміз.Және бұл дұрыс, өйткені осылай біз мәні бірлік регистрда сақтала алатын мәннен артық физикалық адрестағы жадқа қатынай аламыз.
Процессор сегменттік регистрдағы мәнді 10h-қа көбейтіп және ол нәтижеге жалпыға тағайындалған регистрдағы мәнді қосып, физикалық адресті есептейді, (1230h * 10h + 45h = 12345h):
Екі регистр арқылы есептелген адрес нағыз адрес деп аталады.
Әдетте BX, SI және DI регистрлері DS сегменттікрегистрімен;ал BP және SP регистрлері SS-пен жұмыс істейді.
