Bài giảng Lập trình hợp ngữ - Chương 3: Chương trình gỡ rối Debug
CHÖÔNG TRÌNH GÔÕ ROÁI DEBUG
Muïc tieâu
Dòch ñöôïc 1 chöông trình ngaé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
1
Chuong 3 Debug
Daïng leänh cuûa Debug
<maõ leänh > <thoâng soá>
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/8/2022
2
Chuong 3 Debug
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/8/2022
3
Chuong 3 Debug
Taäp leänh cuûa Debug
A <Assemble> :
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 [ <ñòa chæ>]
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 chDS:2000h
5/8/2022
4
Chuong 3 Debug
hí 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
User goû vaøo
5514:0100 MOV AH, 2
5514:0102 MOV DL, 41
5514:0104 INT 21H
SEGMENT
OFFSET
5/8/2022
5
Chuong 3 Debug
C (Compare)
So saùnh 2 vuøng bonhôvaliekecaùc onhôcoù
nodung khaùnha.
Cuù phaùp : C <khoaûng> , < ñòa chæ>
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/8/2022
6
Chuong 3 Debug
D (Dump)
Hieän noäi dung boä nhôù theo daïng heä 16 vaø
ASCI.
Caùch goïi : D <khoaûng>
Ex : - D F000 : 0
- D ES : 100
- D 100
5/8/2022
7
Chuong 3 Debug
Leänh F Fill)
Cuù phaùp : F <khoaûng> <danh saùch>
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/8/2022
8
Chuong 3 Debug
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/8/2022
9
Chuong 3 Debug
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/8/2022
10
Chuong 3 Debug
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/8/2022
11
Chuong 3 Debug
Thí duï minh hoïa leänh D
ñaùnh vaøo leänh D ñexem nodung vuøng nhôù
cuûa 3h bytes bonhôtöñòa chæ 0000040
ñeán 00000F
- D 0000:0040 006F
Ñòa chæ baét ñaàu
- D 0000:0040 L 30
Soá bytes
5/8/2022
12
Chuong 3 Debug
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 <ñòa chæ> <danh saùch>
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/8/2022
13
Chuong 3 Debug
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”
5/8/2022
14
Chuong 3 Debug
Leänh U (Unassemble)
coâng duïng : in ra 32 bytes mamaùy cuûa
chöông trình trong bonhôra maøn hình döôùi
leänh gônh.
cuphaùp U [address]
U [range]
Ex : U 100 119
5/8/2022
15
Chuong 3 Debug
Leänh R (Register)
Coâng duïng xem vasöûa nodung thanh gh.
Cuphaùp R enter (xem taácathanh ghi)
xem thanh ghAX : R AX
xem thanh ghcôR F
Ex muoán baäthanh ghcôCF vaZF ta nhaäp
CY vaZ.
5/8/2022
16
Chuong 3 Debug
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 N <teân file> [ thoâng soá] L [ñòa chæ]
5/8/2022
17
Chuong 3 Debug
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/8/2022
18
Chuong 3 Debug
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/8/2022
19
Chuong 3 Debug
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/8/2022
20
Chuong 3 Debug
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hợp ngữ - Chương 3: Chương trình gỡ rối Debug", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_lap_trinh_hop_ngu_chuong_3_chuong_trinh_go_roi_deb.ppt

