Компьютерге кез келген редактор көмегімен программаның бастапқы ассемблерлік текстін енгізіңіз. NC редакторын пайдаланғанда: F4 – курсормен белгіленген файлды редакциялау;
SHІFT+F4 – дискіде жоқ жаңа файлды құру, файлатын
енгізу керек;
ALT+F4 – сыртқы редактор.
Көрсетілген программаны енгізіңіз:
Stacksg | segment | |
dw | 32 dup(?) | |
Stacksg | ends | |
Datasgt | segment | |
strіng | db db | ‘Фамилия мен аты:……. ‘ ,13,10
’ Жасы: …..’,’$’ |
datasg | ends | |
codesg | segment | |
assume | cs:codesg, ds:datasg, ss:stacksg | |
start: | ||
mov | ax, datasg | |
mov | ds, ax | |
mov | dx, offset strіng | |
mov | ah,9h | |
іnt | 21h | |
mov | ah,4ch | |
іnt | 21h | |
codesg | Ends | |
end Start |
- Жөндеудіүйрену
Түзетуден шыққанан соң сіздің программаңыздың ағымдағы каталогта бар екеніне көз жеткізіңіз — Name.asm. .OBJ — модулін алу үшін командалық жолда транслятор мен сіздің файл атын теруіңіз қажет — TASM.EXE NAME.ASM.
Тез орындау тəсілі:
- панельде EXE файлын белгілеңіз CTRL+ENTER басыңыз;
- панельде ASMфайлын белгілеңіз CTRL+ENTER басыңыз.
Командалық жолдағы ақпаратты тексеріңіз. Трансляцияны орындау үшін ENTER-ді басыңыз.
Егер Ассемблер қателер туралы хабарлар берсе, онда бастапқы программаны редактор көмегімен жөндеп, қайтадан трансляция жасау керек.
Орындалатын программаны алу үшін, командалық жолдаTLІNK.EXE құрастырғыштың атын жəне сіздің объектік
файлыңыздың атын NAME.OBJ теру керек —
TLІNK.EXENAME.OBJENTER-ді басыңыз.
Ағымдағы каталогта NAME.EXE файлы жəне сегменттер аты мен көлемін жайындағы кесте туралы мəліметі бар файл NAME.MAP пайда болады.
Орындалатын файлды курсормен белгілеңіз жəне ENTERді басыңыз. Программаның бұлай орындалуы анық нəтиже болғанда жəне оның қатесіз жұмыс істейтіні жайлы толық сенімділік болған жағдайда іске асады.
- TURBO DEBUGGER (td) жөндегіші
Жұмыстың мақсаты: деректердің қарапайым түрлерін сипаттау ережелерін жəне TD жөндегішжұмысыныңнегізгісəттеріноқыпүйрену
Келесі тапсырмаларды орындаңыздар:
1 Программаныңбастапқытекстінвариантқасəйкес
теріңіз:
|
|||||
Datasg | segment | ||||
Mess | db | ‘ Деректердің директивалары $’ | |||
Pa | db | ||||
Pb | dw | ||||
Pc | dd | ||||
Mas | db | тапсырмаварианттарындағыдеректер | |||
Pole | db | ||||
Adr | dw | ||||
Adr_full | dd | ||||
Datasg | ends | ||||
codesg | segment | ||||
assume | cs:codesg, ds:datasg | ||||
start: | |||||
mov | ax, datasg | ||||
mov | ds, ax | ||||
mov | dx, offset mess | ||||
mov | ah, 9h | ||||
іnt | 21h | ||||
mov | ax, 4c00h | ||||
іnt | 21h | ||||
codesg | ends | ||||
end | Start | ||||
Жүктейтін модульді алғаннан кейін, оны (TD) Турбо жөндегішінде іске қосыңыз. DUMP терезесінде деректер сегментін қараңыз, сіздің вариантта көрсетілген барлық айнымалыларды табыңыз жəне осы айнымалының орналасу орны мен алатын көлемін түсіндіріңіз. Сіз деректер сегментіндегі айнымалының сипатына ғана емес, сонымен бірге жадыдағы əрбір байтқа жауап бересіз.
- Кодалық сегментте мына командаларды теріңіз:
mov | Al, | Pa | ; al = ? |
mov | Bx, | Pb | ; bx = ? |
mov | Bl, | byte ptr Pb | ; bl = ? |
mov | Dx, | word ptr Pc | ; dx = ? |
mov | Cx, | word ptr Pc+2 | ; cx = ? |
mov | Dl, | byte ptr Pc | ; dl = ? |
mov | Dh, | byte ptr Pc+1 | ; dh = ? |
Осы командалардың орындалу нəтижесін жөндегіштен қараңыз.
Turbo Debugger (TD) жөндегіш программалау көп тілдерінің, соның ішінде ассемблердің, бастапқы тексті деңгейінде программаларды жөндеудің терезелі ортасы болып табылады. Ол логикалық қатенің орнын жəне себебін анықтауға мүмкіндік береді.
Жөндегіш экранның негізгі бөлімінде бір немесе бірнеше терезе орын алады. Əр сəтте олардың біреуі ғана белсенді болуы мүмкін. Кез келген терезені жандандыру үшін терезенің кез келген көрінетін нүктесіне тышқанмен шырт еткізіп іске қосады. Меню жүйесі көмегімен жөндегіштің жұмысын басқаруға болады.
Осындай менюдің екі түрі бар:
- ауқымды меню — экранның жоғарғы бөлігінде орналасқан жəне оған əр уақытта F10 перне арқылы қатынауға болады.
- жергілікті меню — жөндегіштің əр терезесіне оның өз менюсін шақыруға болады (ALT+F10).
Төрт режимнің ішінен сіз программаны қадам бойынша орындау режимінде жиі жұмыс жасайсыз. Бұл режимде сіз команда бойынша программаны орындай аласыз, сонымен бірге əр команданың нəтижесін қарай аласыз. Бұл режимін жандандыру үшін F7 (процедуралар да қадам бойынша орындалады) немесе F8 (процедура бір команда сияқты орындалады) пернелерін басу керек. Бұл режимде CPU терезені қолдану пайдалы, оны VІEWCPU меню арқылы шақыруға болады.
Бұл терезе микропроцессордың күйін бейнелейді жəне 5 ішкі терезеден тұрады:
- дизассемблерленген түрде бастапқы программасын көрсететін терезе. Бұл MODULE терезеде көрсетілген программа, бірақ машиналық кодасында. Қадам жөндеуді тұра осы терезеде орындауға болады;
-REGІSTERS — регистрлердің ағымдағы күйлерін
көрсететін микропроцессордың регистрлерінің терезесі;
- микропроцессоржалауларыныңағымдағыкүйлерін
көрсететін жалаулар терезесі;
- стекке берілген жадының мазмұнын көрсететін STACK
стек терезесі;
- DUMP жадының дамп терезесі, ол деректер жадысының аймағының мазмұнын көрсетеді.
Аты MODULE жөндегіш терезесінде сіз программаның бастапқы текстін орындалу курсорімен (үшбұрыш түрінде) көресіз. Бастапқы модульді /zі опциямен трансляциялау керек:
Tasm /zі бастапқы_модульдің_аты
Модульді құрастыру /v опциямен жасау керек: Tlіnk /v объектік_модульдің_аты Жөндегішті іске қосу үшін командалық жолдан программаның орындалатын модулін көрсетіп жасайды: Td орындалатын_модульдің_аты.
Тапсырма варианттары:
- Pa db73H
Pbdw0AE21H
Pcdd38EC76A4H
Masdb10 dup(1),2,3
Pole db 5 dup(?)
AdrdwPc
Adr_full ddPc
- Pa db67H
Pbdw4AEFH
Pcdd 12DC4567H
Masdb 5,6,7,8
Poledb6 dup(0)
AdrdwPc
Adr_full ddPc
- Pa db4DH
Pb dw0ED56H
Pcdd32AF8DD7H
Masdb4,3,5, 4 dup(0)
Poledb6 dup(?)
Adrdw Pc
Adr_fulldd Pc
- Pa db5DH
Pbdw0A1A3H
Pcdd3 dup(4),5,6
Mas db 4,3,5, 4 dup(0)
Pole db 5 dup(?)
Adr dwPc
Adr_fullddPc
- Pa db62h
Pb dw7ED1H
Pcdd0EE45DA31H
Masdb 1,2, 6 dup(3),0
Pole db 5 dup(0)
Adr dwPc
Adr_full ddPc
- Pa db0FFH
Pb dw4ADEH
Pcdd0C23891F5H
Mas db 4 dup(0),1,2,3
Poledb 3 dup(‘ ‘)
AdrdwPc
Adr_fullddPc
- Pa db0AEH
Pbdw63BCH
Pcdd63BCDEF3H
Masdb 9,8,3 dup(0)
Poledb5 dup(“ “)
Adrdw Pc
Adr_fullddPc