- •1.Ассемблер тілінің кемшілігі және артықшылығы. Макрокоманда қызметін ашыңыз және мысалмен түсіндіріңіз.
- •2.Биттермен жұмыс жасау командаларының қолдануын кодпен түсіндіріңіз. Ассемблерде Windows үшін бағдарламалау қалай орындалады.
- •3.Қолданушы регистрлерімен сегменттік регистрлерді салыстыра отырып талдау жасаңыз. Жауабыңызды дәлелдеңіз.
- •4.Командалар жүйесіне анықтама беріңіз. Деректерді жіберу командаларын қолдануын кодпен түсіндіріңіз. Қолдану режимі және ядро режимін салыстырыңыз.
- •5.Процессордың командалар жүйесіндегі командаларды ашыңыз және айырмашылықтарымен қызметтерін көрсетіңіз. Басқа драйверлермен ядро режиміндегі ең қарапайым драйверді салыстырыңыз.
- •7.Жалаулы регистр мен жүйелік жалаулар арасындағы байланысты табыңыз. Мысал келтіріңіз.
- •8.Бағдарламаны басқаратын командалар. Процессорды басқаратын командалар.
- •9.Басқа бағдарламалау тілдерінен айырмашылғын аша отырып жүйелік бағдарламалаудың жалпы мінездемесін сипаттаңыз.
Емтихан теория:
Ассемблер тілінің кемшілігі және артықшылығы. Макрокоманда қызметін ашыңыз және мысалмен түсіндіріңіз.
Биттермен жұмыс жасау командаларының қолдануын кодпен түсіндіріңіз. Ассемблерде Windows үшін бағдарламалау қалай орындалады.
Қолданушы регистрлерімен сегменттік регистрлерді салыстыра отырып талдау жасаңыз. Жауабыңызды дәлелдеңіз.
Командалар жүйесіне анықтама беріңіз. Деректерді жіберу командаларын қолдануын кодпен түсіндіріңіз. Қолдану режимі және ядро режимін салыстырыңыз.
Процессордың командалар жүйесіндегі командаларды ашыңыз және айырмашылықтарымен қызметтерін көрсетіңіз. Басқа драйверлермен ядро режиміндегі ең қарапайым драйверді салыстырыңыз.
Циклдық жылжыту. Командалық жылжыту қолдануын кодпен түсіндіріңіз.Консольдық бағдарламалар консольдан оқу қалай орындалад
Жалаулы регистр мен жүйелік жалаулар арасындағы байланысты табыңыз. Мысал келтіріңіз.
Бағдарламаны басқаратын командалар. Процессорды басқаратын командалар.
Басқа бағдарламалау тілдерінен айырмашылғын аша отырып жүйелік бағдарламалаудың жалпы мінездемесін сипаттаңыз.
Арифметикалық операторлар DEC, VUL, IMUL, SBB қолдануын кодпен түсіндіріңіз. Қолданатын регистрлер және оларда сақталуы.
Массивті бағдарламада сипаттау және инициализация.
Қолданатын регистрлер және оларда сақталуы.МАSM пакетінің мінездемесі.
Бағдарлама жазу барысында қолданылған қолданушы регистрлерінің қызметін және ерекшеліктеріне тоқталыңыз.
Адрестеу режимдерінің ішінде индекс, ығысу, масштаб,базалық режимдерді сипаттаңыз. Мысал келтіріп салыстырыңыз. Бір және көпдеңгейлі драйверлер байланысын ашыңыз.
Критикалық бағалаңыз сегменттеу әрекетін. Деректерді резервтеу директиваларының ерекшеліктерін мысалмен ашыңыз.
Циклдік оператор. Орындалуын кодпен түсіндірңіз. Аудару жəне жинақтау.
Күй жалаулары мен басқару жалаулары арасындағы байланысты табыңыз.
Адрестермен жұмыс жасау командалары. Аудару жəне жинақтау.
Анықтама беріңіз жүйелік бағдарламалау ұғымына жәен мысал келтіріп түсіндірңіз. Макрокоманданы қолданып код жазыңыз және түсіндіріңіз.
Арифметикалық операторлар DIV, IDIV,CMP, ADC қолдануын кодпен түсіндіріңіз. Қолданатын регистрлер және оларда сақталуы.Процессор регистерлері.
Критикалық түрде бағалаңыз, Ассемблер синтаксисін және директивасын. Командаларды қолдану арқылы мысалмен регистрлердегі өзгерісті түсіндіріңіз.
Ондық арифметика. Логикалық операторлар.Жүйелік жалаулар
Салыстырыңыз Ассемблер тілінің басқа тілдермен байланысы мен маңызын. Олардың байланысын табыңыз және түсіндіріңіз.
Деректерді түрлендіру командасын қолданып, түсіндіріңіз.Intel процессорларының құрылымы.
. Процессор жұмысы барысында регистрлерді бақылау қортындысы бойынша жалпы тағайындалған регистрлерге талдау жасаңыз.
Тура және жанама адрестеудің орындалуын мысалмен түсіндіріңіз. Үзіліс сұраныстарының деңгейін сипаттаңыз.
Басқару және күй регистрі жұмысын жалпы тағайындалған регистрлер ішінен бөліп алып қарастырыңыз. бағдарламалық кодқа әсері қандай? Driver Development Kit.
Арифметикалық операторлар ADD, SUB, INC, қолдануын кодпен түсіндіріңіз
Сипаттаңыз процессордың командалар жүйесіндегі әр команданы. Олардың атқаратын қызметі бойынша ерекшеліктерін атаңыз.
Жалауларды басқару командалары. Олардың қолдануын кодпен түсіндіріңіз. Windows ядросы режимінің драйверлері.
1.Ассемблер тілінің кемшілігі және артықшылығы. Макрокоманда қызметін ашыңыз және мысалмен түсіндіріңіз.
Ассемблер тілі - машиналық тідің аналогы болып саналады. Ассемблер тілінде жазылған программа МП-р құрылысының ерекшеліктерін: жадтың ұйымдастырылуын, операндтарды адрестеу тәсілдерін, регистрлерді қолдану ережелерін анықтап, көрсету қажет. Әр МП-ң өзінің Ассемблері болады.
Ассемблер тілінде жазылған программа жад сегменттері деп аталатын жадблоктарының тобынан тұрады. Программа осындай бір немесе бірнеше блок-сегменттерден тұруы мүмкін. Әр сегмент программа кодының әр қатарында орналасқан сөйлемдерден құрылады.
Ассемблер тілінің сөйлемдері төрт түрлі болады:
Командалар: машиналық кодтардың аналогтары. Бұл командалар трансляциялау кезінде МП-ң сәйкес командаларына түрленеді;
Макрокомандалар: трансляциялау кезінде басқа сөйлемдерге алмасатын сөйлемдер;
Дерективалар: ассемблер трансляторына орындалатын әрекеттер туралы түсінік береді, яғни қызметші ақпараттар жиыны. Дерективалар машиналық кодтарға түрленбейді;
Комментарий: кез-келген белгілерден тұрады.
Ассемблер тілінің артықшылығы:
Бұл тілдің көмегімен программаны МП командалары деңгейінде жазуға болады және сандық кодтардың барлығын еске сақтауды талап етпейді. Программа командалары жазылып болған соң, Ассемблер программасы шақырылады да, ол бұл командаларды олардың кодтарына айналдырады. Командалар жиыныннан тұратын программа негізгі не алғашқы программа деп аталады, ал негізгі программаның сандық кодтары, яғни машиналық тілге айналған түрі – объектік программа деп аталады.
Ассемблер тілінің кемшілігі ретінде жазылған бағдарламаны тек програм мистке ғана түсінікті деп айтуға болады. Өйткені, ондағы компилятор мен транслятордың тілін түсіну өте қиын.
Ассемблердің атқаратын негізгі қызметі – қолданушыға түсінікті негізгі программаны МП түсінетін объекттік программаға айналдыру. Ассемблердің кең тараған түрлері: IBM фирмасының MASM(Macro Assembler) программасы және Borland фирмасының TASM (Turbo Assembler) прграммасы.
Макрокомандалардың жұмыс істеу принципі қарапайым: сіз мәтіннің блогына ат бересіз, содан кейін Турбо Ассемблер оны алдыңғы кодта тапқан кезде, онымен байланысты мәтін ассемблерленеді. Макрокоманданың аты осы макрокоманданың толық мәтініне дейін кеңейтіледі деп есептесе болады, сондықтан да макрокоманданың мәтінінің қойылымын суреттеу үшін оның атының орнына «макрокеңейтілу» термині жиі қолданылады.
Макрокомандалар енгізілген файлдарға мына жағынан ұқсас, яғни мәтін немесе макрокоманданың денесі әр ретте макрокоманданың аты анықталған кезде ассемблерленеді. Бірақ макрокомандалар енгізілген файлдарға қарағанда көп иілгіштікпен әлдеқайда ерекшеленеді. Өйткені оларға параметрлер берілуі мүмкін және олардың құрамында локальдық таңбалар болуы мүмкін. Олар енгізілген файлдарға қарағанда әлдеқайда тез өңделеді, себебі макрокоманданың мәтіні дискіден оқуды қажет етпейді. Макрокоманданың негізгі жұмыстарын қарастырайық.
Бағдарламаның келесі бөлімінде MULTIPLY_BY_4 командасы AX регистріндегі мәнді 4-ке көбейту үшін және мәнді DX:AX: регистрлерінде сақтау үшін қолданылады.
MULTIPLY_BY_4 MACRO
sub dx,dx
shl ax,1
rcl dx,1
shl ax,1
rcl dx,1
ENDM
.
mov ax,[MemVar]
MULTIPLY_BY_4
mov WORD PTR [Result],ax
mov WORD PTR [Result+2],dx
Ассемблер MULTIPLY_BY_4 макрокоманданың атын кездестірген кезде, ол бұл нүктеде макрокоманданың денесін құрайтын 4 нұсқауды ассемблерлейді. Бұл MULTIPLY_BY_4 жаңа нұсқауын анықтағандай болады. Оны сіз MOV немесе MUL нұсқауларын қолданғаныңыздай, қолдануға болады. Әрине, жаңа макронұсқау 8086 процессордың 5 нұсқауынан тұрады, бірақ жоғарыда келтірілген код макрокоманданы қолданбағаннан гөрі, оны қолданғанда оңай оқылады. Берілген мысалда, сіз теңдей жетістікпен макрокоманданың орнына MyltiplyBy4 аттағы ішкі бағдарламаны қолдануыңызға болады:
MultiplyBy4 PROC
sub dx,dx
shl ax,1
rcl dx,1
shl ax,1
rcl dx,1
ret
MultiplyBy4 ENDP
.
mov ax,[MemVar]
call MultiplyBy4
mov WORD PTR [Result],ax
mov WORD PTR [Result+2],dx
