- •1.Ассемблер тілінің кемшілігі және артықшылығы. Макрокоманда қызметін ашыңыз және мысалмен түсіндіріңіз.
- •2.Биттермен жұмыс жасау командаларының қолдануын кодпен түсіндіріңіз. Ассемблерде Windows үшін бағдарламалау қалай орындалады.
- •3.Қолданушы регистрлерімен сегменттік регистрлерді салыстыра отырып талдау жасаңыз. Жауабыңызды дәлелдеңіз.
- •4.Командалар жүйесіне анықтама беріңіз. Деректерді жіберу командаларын қолдануын кодпен түсіндіріңіз. Қолдану режимі және ядро режимін салыстырыңыз.
- •5.Процессордың командалар жүйесіндегі командаларды ашыңыз және айырмашылықтарымен қызметтерін көрсетіңіз. Басқа драйверлермен ядро режиміндегі ең қарапайым драйверді салыстырыңыз.
- •7.Жалаулы регистр мен жүйелік жалаулар арасындағы байланысты табыңыз. Мысал келтіріңіз.
- •8.Бағдарламаны басқаратын командалар. Процессорды басқаратын командалар.
- •9.Басқа бағдарламалау тілдерінен айырмашылғын аша отырып жүйелік бағдарламалаудың жалпы мінездемесін сипаттаңыз.
2.Биттермен жұмыс жасау командаларының қолдануын кодпен түсіндіріңіз. Ассемблерде Windows үшін бағдарламалау қалай орындалады.
Операндылардың жеке биттерімен логикалық операцияларды және жылжытуларды пайдалану арқылы жұмыс жасауға болады. Бірақ, бұлардан басқа х86 командалар жүйесінде биттермен жұмыс жасау үшін арнайы командалар бар: олар биттерді көшіру және биттерді тексеру командалары. Олар алғаш рет і386 процессорлерінде пайда болған.
Биттерді көшіру командасы. Биттерді көшіру BSF және BSR командаларымен орындалады. Бұл командалар бір-біріне өте ұсаса. Оларда 2 операнд болады. Бірінші операнд 16 биттік болу керек, оған шешім жазылады. Екінші операнд 16 биттік регистр немесе жадтағы сөз болуы қажет, бұл өңделетін мән болып табылады.
BSF командасы екінші операндтың биттерін кішісінен үлкеніне қарай қарастырады, және бірінші бірлік биттің индексін регистрге орналастырады. Биттер нөлден бастап нөмірленеді. Егер бірлік бит табылса, онда нөлдік жалаша тасталады (ZF=0). Егер барлық биттер нөлдік юолса, онда нөлдік жалауша қабылданады (ZF=1), ал бірінші операнд мәні анықталмаған болады.
mov ax,01011000b ;AX=58h bsf bx,ax ;BX=3, ZF=0 xor ax,ax ;AX=0 bsf bx,ax ;BX=?, ZF=1 |
BSR дің айырмашылығы, ол биттерді үлкеннен кішісіне қарай қарастырады. Ал қалғандары сол қалпында қалады.
mov ax,01011000b ;AX=58h bsr bx,ax ;BX=6, ZF=0 xor ax,ax ;AX=0 bsr bx,ax ;BX=?, ZF=1 |
Биттерді тексеру және модификациялау командалары.
ВТ командасы тексерілген биттің мәнін СҒ жалаушасына көшіреді. Бұдан кейін JC және JNC арқылы шартты тексерулер жүргізуге болады. Командада екі операнд болады: регистрдегі немесе жадыдағы сөз және биттің нөмірі, ол нөмір регистрде болуы мүмкін. Команданы пайдалану мысалы:
bt ax,0 ;Проверка младшего бита AX
jc m1 ;Переход, если бит равен 1
mov cx,3 ;CX=3
bt ax,cx ;Проверка 3-го бита AX
jnc m1 ;Переход, если бит равен 0
Ассемблерде Windows үшін бағдарламалау қалай орындалады.
MS Windows-та программаны дайындау және жөндеу процессі келесі этаптардан тұрады:
Программа тексті кез – келген текстік редектор арқылы дайындалады. Орындалатын текстегі файл кеңейтілуі .ASM түрінде болуы міндетті;
Программа трансляциясы MASM.EXE ассемблерінің көмегімен, объектілік файл алу үшін орындалады;
Объектілік модулдің компоновкасы LІNK. EXE компоновщигі арқылы, жүктемеленетін (орындалатын) файл алу үшін орындалады;
Дайын программаның орындалуы CodeVіew (CV.EXE файлы) интерактивті жөндегіш арқылы орындалады.
Егер орындалатын текстегі файл программасынң аты P/ASM деп аталған болса, онда ассемблерді шақыру жолы келесідегідей түрде болады:
MASM /Z /ZІ /N P, P, P;
/Z кілті программаның орындалатын текстіндегі, ассемблер тапқан қателерді экранға шығаруға рұқсат береді (бұл кілтсіз қателерді табуды трансляция листингі бойынша орындауға тура
келер еді).
/ZІ кілті обьектілік файлға программаның орындалуы кезінде сұралмайтын, CodeVіew үндегішімен қолданылмайтын орындалатын программа жолдарын және басқа ақпараттарды
қосуды орындайды.
/N кілті программадағы қолданылған белгілеулер тізімін листингке шығаруды басады, ол арқылы листинг өлшемін бірнеше рет кішірейтуге болады. Одан кейін орналасқан параметрлер модул аттарын береді:
(P.ASM) орындалатын, (P. OBJ) обьектілік жне (P.LST) листинг файлдары. Ал нүктелі үтір қиылысқан сілтемелерді, яғни P.CRF файлын қалыптастыруды болдырмау үшін пайдаланылады.
Компоновщикті шақыру жолы келесідегідей түрде болады:
LІNK /CO P, P;
/CO кілті орындалатын файлдағы CV жөндеуішінде орындалатын программаның толық текстін экранға шығару үшін символдық ақпараттарды береді, оғ ан таңбалар, коментарилер және т.б. жатады.
