ЭЕМ-де қарапайым типтік есептерді тестулеу

Компьютерге кез келген редактор көмегімен программаның бастапқы ассемблерлік текстін енгізіңіз. 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

  1. Жөндеудіүйрену

Түзетуден шыққанан соң сіздің программаңыздың ағымдағы каталогта бар екеніне көз жеткізіңіз — 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ді басыңыз. Программаның бұлай орындалуы анық нəтиже болғанда жəне оның қатесіз жұмыс істейтіні жайлы толық сенімділік болған жағдайда іске асады. 

  1. 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 терезесінде деректер сегментін қараңыз, сіздің вариантта көрсетілген барлық айнымалыларды табыңыз жəне осы айнымалының орналасу орны мен алатын көлемін түсіндіріңіз. Сіз деректер сегментіндегі айнымалының сипатына ғана емес, сонымен бірге жадыдағы əрбір байтқа жауап бересіз.

  1. Кодалық сегментте мына командаларды теріңіз:
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ІEWCPU меню арқылы шақыруға болады.

Бұл терезе микропроцессордың күйін бейнелейді жəне 5 ішкі терезеден тұрады:

  • дизассемблерленген түрде бастапқы программасын көрсететін терезе. Бұл MODULE терезеде көрсетілген программа, бірақ машиналық кодасында. Қадам жөндеуді тұра осы терезеде орындауға болады;

-REGІSTERS — регистрлердің ағымдағы күйлерін

көрсететін микропроцессордың регистрлерінің терезесі;

  • микропроцессоржалауларыныңағымдағыкүйлерін

көрсететін жалаулар терезесі;

  • стекке берілген жадының мазмұнын көрсететін STACK

стек терезесі;

  • DUMP жадының дамп терезесі, ол деректер жадысының аймағының мазмұнын көрсетеді.

Аты MODULE жөндегіш терезесінде сіз программаның бастапқы текстін орындалу курсорімен (үшбұрыш түрінде) көресіз. Бастапқы модульді /zі опциямен трансляциялау керек:

Tasm /zі бастапқы_модульдің_аты

Модульді құрастыру /v опциямен жасау керек: Tlіnk /v объектік_модульдің_аты Жөндегішті іске қосу үшін командалық жолдан программаның орындалатын модулін көрсетіп жасайды: Td орындалатын_модульдің_аты.

Тапсырма варианттары:

  1. Pa db73H

Pbdw0AE21H

Pcdd38EC76A4H

Masdb10 dup(1),2,3

Pole db 5 dup(?)

 AdrdwPc

Adr_full ddPc

  1. Pa db67H

Pbdw4AEFH

Pcdd 12DC4567H

 Masdb 5,6,7,8

Poledb6 dup(0)

 AdrdwPc

Adr_full ddPc

  1. Pa db4DH

Pb dw0ED56H

Pcdd32AF8DD7H

 Masdb4,3,5, 4 dup(0)

 Poledb6 dup(?)

Adrdw Pc

 Adr_fulldd Pc

  1. Pa db5DH

Pbdw0A1A3H

Pcdd3 dup(4),5,6

Mas db 4,3,5, 4 dup(0)

Pole db 5 dup(?)

Adr dwPc

 Adr_fullddPc

  1. Pa db62h

Pb dw7ED1H

Pcdd0EE45DA31H

Masdb 1,2, 6 dup(3),0

Pole db 5 dup(0)

Adr dwPc

Adr_full ddPc

  1. Pa db0FFH

Pb dw4ADEH

Pcdd0C23891F5H

Mas db 4 dup(0),1,2,3

Poledb 3 dup(‘ ‘)

AdrdwPc

Adr_fullddPc

  1. Pa db0AEH

Pbdw63BCH

Pcdd63BCDEF3H

Masdb 9,8,3 dup(0)

Poledb5 dup(“ “)

Adrdw Pc

Adr_fullddPc