Bài giảng Công nghệ thông tin - Chương 3: Debug
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ thông tin - Chương 3: Debug", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_cong_nghe_thong_tin_chuong_3_debug.ppt
Nội dung text: Bài giảng Công nghệ thông tin - Chương 3: Debug
- CHÖÔNG TRÌNH GÔÕ ROÁI DEBUG Muïc tieâu ll DòchDòch ñöôïcñöôïc 11 chöôngchöông trìnhtrình ngaénngaén • Xem caùc thanh ghi vaø côø cuûa CPU • Xem söï thay ñoåi noäi dung cuûa caùc bieán • Doø tìm trò ôû daïng nhò phaân hoaëc ASCII trong boä nhôù Hoã trôï luyeän taäp vieát chöông trình baèng Assembly 5/23/2021 Chuong 3 Debug 1
- Daïng leänh cuûa Debug Trong ñoù maõ leänh laø 1 trong caùc chöõ A,B,C,D,E, coøn thoâng soá thì thay ñoåi tuøy theo leänh. Caùc thoâng soá coù theå laø : Ñòa chæ : laø 1 boä ñòa chæ ñaày ñuû segment : offset hay chæ caàn offset laø ñuû. Segment coù theå duøng teân thanh ghi. Ex : F000:0100 DS: 200 0AF5 5/23/2021 Chuong 3 Debug 2
- Daïng leänh cuûa Debug Taäp tin : laø 1 tham khaûo teân taäp tin ñaày ñuû, ít nhaát phaûi coù teân taäp tin. Danh saùch : Laø 1 hay nhieàu trò byte hoaëc chuoåi caùch nhau baèng daáu phaåy. Khoaûng : laø 1 tham khaûo ñeán vuøng boä nhôù Trò : laø 1 soá heä 16 coù toái ña coù 4 chöõ soá 5/23/2021 Chuong 3 Debug 3
- Taäp leänh cuûa Debug A : cho pheùp vieát töø baøn phím caùc leänh maõ maùy döôùi daïng gôïi nhôù. A [ ] Ex : - A 100 dòch ôû ñòa chæ CS:100h - A dòch ôû ñòa chæ hieän taïi (Debug laáy ñòa chæ ñoaïn CS) - A DS:2000h dòch ôû ñòa chæ DS:2000h 5/23/2021 Chuong 3 Debug 4
- Thí duï minh hoïa leänh A Phaûi nhaäp leänh vaøo theo töøng doøng moät vaø keát thuùc baèng Enter. Keát thuùc nhaäp nhaán Enter ôû doøng troáng. Ex : - A 100 5514:0100 MOV AH, 2 User goû vaøo 5514:0102 MOV DL, 41 5514:0104 INT 21H SEGMENT OFFSET 5/23/2021 Chuong 3 Debug 5
- C (Compare) So saùnh 2 vuøng boä nhôù vaø lieät keâ caùc oâ nhôù coù noäi dung khaùc nhau. Cuù phaùp : C , Ex : - C 100, 200, 3000 : 1000 So saùnh oâ nhôù DS:100h vôùi oâ nhôù 3000:1000h, oâ nhôù DS:101h vôùi oâ nhôù 3000:1001h Cho ñeán oâ nhôù DS :200h vôùi oâ nhôù 3000:1100h. So saùnh 101 bytes 5/23/2021 Chuong 3 Debug 6
- D (Dump) Hieän noäi dung boä nhôù theo daïng heä 16 vaø ASCII. Caùch goïi : D Ex : - D F000 : 0 - D ES : 100 - D 100 5/23/2021 Chuong 3 Debug 7
- Leänh F (Fill) Cuù phaùp : F Coâng duïng : laáp ñaày trò vaøo vuøng nhôù ngay taïi ñòa chæ mong muoán. Trò nhaäp vaøo töøng byte moät theo heä 16 Daáu tröø (-) duøng ñeå luøi laïi 1 ñòa chæ. SPACE BAR duøng ñeå tôùi 1 ñòa chæ. ENTER ñeå keát thuùc. 5/23/2021 Chuong 3 Debug 8
- Minh hoïa leänh F Laép ñaày vuøng nhôù taïi ñòa chæ offset 100h chuoåi “ Toi dua em sang song”. F 100 “TOI DUA EM SANG SONG” OFFSET 100H 5/23/2021 Chuong 3 Debug 9
- KEÁT QUAÛ -F 100 "TOI DUA EM SANG SONG" -D 100 0ADD:0100 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG 0ADD:0110 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S 0ADD:0120 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA 0ADD:0130 45 4D 20 53 41 4E 47 20-53 4F 4E 47 54 4F 49 20 EM SANG SONGTOI 0ADD:0140 44 55 41 20 45 4D 20 53-41 4E 47 20 53 4F 4E 47 DUA EM SANG SONG 0ADD:0150 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG 0ADD:0160 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S 0ADD:0170 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA 5/23/2021 Chuong 3 Debug 10
- D (DUMP) Muïc ñích : in noäi dung boä nhôù trong MT ra maøn hình döôùi daïng soá hex. Cuù phaùp : D [ address] D [range] Ex : in noäi dung vuøng nhôù ñaõ laép ñaày ôû ví duï tröôùc ôû ñòa chæ 100h Ex2 : xem noäi dung vuøng nhôù 16 bytes baét ñaàu ôû ñòa chæ F000:100 - D F000:100 L10 5/23/2021 Chuong 3 Debug 11
- Thí duï minh hoïa leänh D ñaùnh vaøo leänh D ñeå xem noäi dung vuøng nhôù cuûa 30h bytes boä nhôù töø ñòa chæ 0000:0040 ñeán 0000:006F - D 0000:0040 006F Ñòa chæ baét ñaàu - D 0000:0040 L 30 Soá bytes 5/23/2021 Chuong 3 Debug 12
- E (ENTER) Duøng ñeå ñöa döõ lieäu byte vaøo boä nhôù ngay taïi ñòa chæ mong muoán. Caùch goïi : - E Trò nhaäp vaøo theo daïng soá 16 töøng byte moät Daáu - duøng ñeå luøi laïi 1 ñòa chæ Space Bar duøng ñeå tôùi 1 ñòa chæ Enter duøng ñeå keát thuùc 5/23/2021 Chuong 3 Debug 13
- Minh hoïa leänh E Muïc dích : thay ñoåi noäi dung boä nhôù. Cuù phaùp : - E [address] [ list] Ex : thay ñoåi 6 bytes baét ñaàu ôû ñòa chæ 100 thaønh “ABCDE” - E 100 “ABCDE” Debug laáy ñoaïn chæ bôûi DS Neáu ta khoâng qui ñònh ñòa chæ ñoaïn 5/23/2021 Chuong 3 Debug 14
- Leänh U (Unassemble) coâng duïng : in ra 32 bytes maõ maùy cuûa chöông trình trong boä nhôù ra maøn hình döôùi leänh gôïi nhôù. cuù phaùp : U [address] U [range] Ex : U 100 119 In ra maøn hình caùc leänh maõ maùy töø ñòa chæ CS:100 ñeán CS:119 5/23/2021 Chuong 3 Debug 15
- Leänh R (Register) Coâng duïng : xem vaø söûa noäi dung thanh ghi. Cuù phaùp : - R enter (xem taát caû thanh ghi) xem thanh ghi AX : - R AX xem thanh ghi côø : R F Ex : muoán baät thanh ghi côø CF vaø ZF ta nhaäp CY vaø ZR. 5/23/2021 Chuong 3 Debug 16
- Leänh N (Name) Coâng duïng : taïo taäp tin caàn ñoïc hay ghi tröôùc khi duøng leänh L hay W. Cuù phaùp : NN file> [[ thoângthoâng soá]soá] LL [ñòa[ñòa chæ]chæ] 5/23/2021 Chuong 3 Debug 17
- Thí duï minh hoïa leänh N Ex : taïo taäp tin Love.txt . Duøng leänh R ñeå xaùc ñònh vuøng ñòa chæ daønh cho User. Duøng leänh ñeå ñöa caâu thoâng baùo “ I love you more than I can say’ ôû ñòa chæ 2000:100. Duøng leänh D ñeå kieåm tra vuøng nhôù taïi ñòa chæ 2000:100. Duøng leänh N ñeå ñaët teân taäp tin treân ñóa. - N Love.txt Duøng leänh R ñeå ñònh soá byte caàn thieát ghi leân ñóa trong 2 thanh ghi BX vaø CX. Cuï theå trong tröôøng hôïp naøy soá byte caàn ghi laø 1Eh byte. BX = 0000 CX = 1E Duøng leänh W 2000:100 ñeå ghi döõ lieäu ñaõ nhaäp vaøo taäp tin ôû ñòa chæ boä nhôù 2000:100. 5/23/2021 Chuong 3 Debug 18
- Thoaùt khoûi Debug vaø goïi laïi taäp tin theo caùch sau : C :\> Debug Love.txt tìm xem Debug ñaõ naïp taäp tin Love.txt vaøo choã naøo trong boä nhôù. 5/23/2021 Chuong 3 Debug 19
- Leänh W (Write) Cuù phaùp : W [address] Thöôøng ñöôïc söû duïng chung vôùi leänh N Ex : taïo taäp tin coù teân Love.txt Böôùc 1 : duøng leänh E ñeå ñöa caâu ‘I love you more than I can say” vaøo oâ nhôù ôû ñòa chæ 100. Böôùc 2 : duøng leänh D ñeå kieåm tra laïi ñòa chæ 100 Böôùc 3 : duøng leänh N ñeå ñaët teân taäp tin : - N Love.txt Böôùc 4 : duøng leänh R ñeå ñònh soá byte caàn ghi leân ñóa trong 2 thanh ghi BX vaø CX. (BX chöùa 16 bit cao, CX chöùa 16 bit thaáp). Ôû ñaây soá byte caàn ghi laø 1Eh. Böôùc 5 : duøng leänh W ñeå ghi caâu treân ñaõ nhaäp vaøo vuøng nhôù coù ñòa chæ baét ñaàu laø 100. 5/23/2021 Chuong 3 Debug 20
- Leänh T (Trace)vaø P cuù phaùp : - T [= ][soá laàn] Muïc ñích : duøng ñeå chaïy 1 hay nhieàu laàn caùc leänh trong boä nhôù Ex : - T = 3000:1000 Ex : - T = 3000:1000 5/23/2021 Chuong 3 Debug 21
- Leänh L (Load) naïp taäp tin hoaëc naïp sector luaän lyù töø ñóa vaøo boä nhôù. Cuù phaùp : - L [ ] Daïng 1 : neáu chæ coù ñòa chæ duøng ñeå naïp taäp tin. Teân taäp tin phaûi ñöôïc gaùn tröôùc baèng leänh N. Taäp tin luoân luoân ñöôïc gaùn ôû ñòa chæ offset 100h Daïng 2 : neáu coù ñaày ñuû caùc thoâng soá , duøng ñeå ñoïc sector luaän lyù treân ñóa vaøo boä nhôù. Ñóa : = 0 oå ñóa A, =1 oå ñóa B, =2 oå ñóa C . 5/23/2021 Chuong 3 Debug 22
- Leänh H (Hex Arithmethic) thöïc hieän pheùp coäng vaø tröø heä 16 Cuù phaùp : - H Keát quaû : hieän ra toång vaø hieäu cuûa trò 1 vaø trò 2 5/23/2021 Chuong 3 Debug 23
- Leänh S (Search) CoângCoâng duïngduïng :: tìmtìm kieámkieám tròtrò trongtrong 11 vuøngvuøng boäboä nhôù.nhôù. CuùCuù phaùpphaùp :: SS saùch> GiaûiGiaûi thíchthích :: tìmtìm kieámkieám tròtrò coùcoù hieänhieän dieändieän trongtrong vuøngvuøng boäboä nhôùnhôù ñaõñaõ chæchæ ñònhñònh hayhay khoâng?khoâng? NeáuNeáu coùcoù DebugDebug hieänhieän caùccaùc ñòañòa chæchæ ñaàuñaàu cuûacuûa nhöõngnhöõng nôinôi coùcoù chöùachöùa danhdanh saùch.saùch. ExEx :: SS 100100 LL 10001000 ‘DOS’‘DOS’ 18AF18AF :: 01540154 18AF18AF :: 08230823 Ex2Ex2 :: SS 20002000 22002200 13,15,8A,13,15,8A, 88 5/23/2021 Chuong 3 Debug 24
- Leänh M (Move) Coâng duïng : cheùp noäi dung vuøng nhôù ñeán 1 ñòa chæ khaùc. Cuù phaùp : - M Ex : - M 100 105 200 Cheùp 5 bytes töø DS:100 ñeán DS:200 Ex2Ex2 :: MM CS:100CS:100 LL 5050 ES:300ES:300 CheùpCheùp 5050 bytesbytes töøtöø CS:100CS:100 ñeánñeán ES:300ES:300 5/23/2021 Chuong 3 Debug 25
- Leänh I (Input) Coâng duïng : nhaäp 1 byte töø coång xuaát nhaäp vaø hieän ra maøn hình. Cuù phaùp : - I ñòa chæ coång laø soá heä 16 toái ña 4 chöõ soá. Ex : - I 37E EC 5/23/2021 Chuong 3 Debug 26
- Leänh O (Output) Coâng duïng : xuaát 1 byte ra coång xuaát nhaäp. CuùCuù phaùpphaùp :-:- O coång> ñòañòa chæchæ coångcoång laølaø soásoá heäheä 1616 toáitoái ñaña 44 chöõchöõ soá.soá. Ex : - O 378 5E 5/23/2021 Chuong 3 Debug 27
- Summary DuøngDuøng leänhleänh DD ñeåñeå xemxem noäinoäi dungdung vuøngvuøng nhôùnhôù taïitaïi ñòañòa chæchæ cuûacuûa ROMROM BIOSBIOS F000:0000.F000:0000. TöôngTöông töïtöï xemxem noäinoäi dungdung vuøngvuøng nhôùnhôù RAMRAM maønmaøn hìnhhình ôûôû ñòañòa chæchæ B800:0000;B800:0000; baûngbaûng vectorvector ngaétngaét quaõngquaõng 0000:00000000:0000 GoûGoû vaøovaøo maùymaùy baèngbaèng leänhleänh A,A, ñoaïnñoaïn chöôngchöông trìnhtrình sausau ôûôû ñòañòa chæchæ 2000:01002000:0100 5/23/2021 Chuong 3 Debug 28
- Summary 2000:0100 MOV AL,32 2000:0102 MOV AH, 4F 2000:0104 MOV CX, [200] 2000:0108 MOV WORD PTR [1800], 1 2000:010E MOV BYTE PTR [1800], 1 2000:0113 Xem laïi ñoaïn chöông trình vöøa ñaùnh treân baèng leänh U. Chuù yù quan saùt phaàn maõ maùy. Tìm xem caùc toaùn haïng töùc thôøi vaø caùc ñòa chæ xuaát hieän ôû ñaâu trong phaàn maõ maùy cuûa leänh. Phaàn maõ maùy cuûa 2 caâu leänh cuoái coù gì khaùc nhaukhi duøng caùc toaùn töû WORD PTR vaø BYTE PTR. 5/23/2021 Chuong 3 Debug 29
- Summary Duøng leänh E nhaäp vaøo ñoaïn vaên baûn sau vaøo boä nhôù taïi ñòa chæ DS:0100 8086/8088/80286 Assembly language. Copyright 1988, 1886 by Brady Books, a division of Simon, Inc. All right reserved, including the of reproduction in whole or in part, in any form. (chuù yù kyù töï ñaàu doøng xuoáng doøng coù maõ ASCCI laø 0D vaø 0A). 5/23/2021 Chuong 3 Debug 30