Енді регистрлер осылай жазылу керек.
AX=03A7BX=092ACX=00000DX=0000SP=FFEEBD=0000S1=0000DI=0000
DS=3756ES=3756SS=3756CS=3756IP=0100NVUP DI PL NZ NA PO NC
3756:010001D8ADD AX, BX
ADD инструкциясы компьютер жадының керекті жерде орналасқан. Бұл үшінші қатардан белгілі. Бірінші екі сан 3756:0100 ол адресі (100h) бірінші санның инструкциясы. Бұдан кейін біз екі байтты көріп тұрмыз ADD:01D8 көрсетілген.
Байт 01h тең 100h адресі арқылы орналасқан соңында машина тілінде сообщение орналасқан. Бұны Debug қосу инструкциясы дейді. Инструкция орнатылып болған соң Debugке қай жерде орналасқанын айту керек.
МикропроцессорCS, IP арнайы регистірде сегмент номерімен жылжу адресін табады. Біз оны келесі листингтен көре аламыз. Экранға шыққан регистрлерге қарап біз Debug CS =3756 деп орнатқанын көреміз. Осылайша біздің инструкциямыздың басының толық адресі 3756 : 0100. Бұл адрестің келесі бөлігі (3756 сегментінің ішіндегі жылжытулар) инструкция көрсеткіш –IP регистірінде сақталады. Микропроцессор ІР регистрынан алынған жылжытуды біздіңбірінші инструкцияда табу үшін пайдаланады. ІР регетріне бірінші инструкцияның адресін жазып ІР=0100 жазып біз микропроцессірге оны қай жерде іздеу керектігін хабарлаймыз. Бірақ ІР регистрі 100 h та установлен. Debug әр инструкцияны ендіріп болған соң, регистрлерді дұрыс установка болған соң біз Debug тен оның орындауын сұраймыз. Ол үшін біз Debug команlасын қолданамыз “Т” (ағылшынша “Trace”), бұл команда бір қадамда бір инструкцияны орындайды, одан кейін регистрлердің мазмұнын көрсетеді. Әр IP-ді ендірген сайын келесі инструкцияны көрсетеді, біздің жағдайда 102h көрсетеді. Біз 102 h ешқандай инструкцияны қолданбадық сондықтан біз соңғы қатарда, алдыңғы программадан қалған инструкцияны көреміз. қолданбадық сондықтан біз соңғы қатарда, алдынғы программадан қалған инструкцияны көреміз.
“Т” командасы арқылы Debug тан инструкцияның орындауын сұрайық.
-Т
АХ=OCD1BX=092ACX=00000DX=0000SP=FFEEBD=0000
SI=0000DI=0000
DS=3756ES=3756SS=3756CS=0102IP=0102 NV UP DI PL NZ NАРО NC
3756:0102AC LOPSB
AX ренистрі CD1h санына тең, ол 3А7h және 92Аh қосындысы ал IP регистрі 102h адтесін көрсетеді, сондықтан регистрлердің соңғы қатарында 100h емес 102h адресінде орналасқан инструкцияны көреміз. Алда айтып кеткендей инструкция көрсеткіші CS регистрімен бірге келесі микропроцссор орындайды, инструкцияны көрсетеді.
Егер біз қайтадан “Т” енгізсек онда келесі инструкция орындалады. Бірақ оны қазыр орындамау керек өйткені сіздің микропроцессорыңыз “асылып” қалуы мүмкін.
Егер енген инструкцияны тағы орындағымыз келсе, 92Ah және CD1h жаңадан шыққан жауапты АХ-те сақтасақ?
Микропроцесорге келесі инструкцияны қай жерден табатымызды түсіндіру үшін не істеуіміз керек, сөйтіп ол келесі инструкциямыз “ADD AX, BX” , болу керек 100h адресінде орналасқан.
IP регистрінің мәнің 100-ге өзгерте аламыз ба? Өзгертіп көрейік “R” командасын қолдайық IP-ді 100 устанавить ету үшін, одан соңрегистерлердің распечаткасын көрейік.
АХ=OCD1BX=092ACX=00000DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=3756ES=3756SS=3756 CS=3756IP=0100NV UP DI PLN2NAPONC3756:0100ADDAXBX
Қайтадан .T” командасын ендіріңіз, сөйтіп көрейік Ах регистірі 15 FBh санды қабылдағанын.
Көріп тұрғандай листингтың төменгі жағдайда орналасқанIpрегистірін тексеру қажет сол инструксияға сәйкес. Сонымен сіздер сенімді боласыздар микропроцессордың керекті инструкциясын орындап жатқанына.
Алу амалы.
Вх-тен Ах инструкциясының алуын жазайық, алу амалын орындап болған соңАх регистірінің нәтижесі3А7h тең болады онда біз бастаған орнымызға келеміз. Сонымен біздер көресіздер қалай эканомдап2 байтты ендіргенді.
ADD инструкциясына2 байтты ендірген кезде екірет,,E” командасын енгізетінедік бірінші рет 0100h-ден екінші адреске. Бірақ біз екінші байтты ендіре аламыз тағы бір,,E” командасын қолданбай ақ, егер біз прабел арқылы ажыратсақ екінші байтты. Ендіріп болған соң ,,Enter” клавишін басыңыз. Бұл амалды біздің алу инструкйиясында қолданып көріңіз:
-E 100
3756:0100 01.29 08.08.