ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Suthida Chaichomchuen std@kmitnb.ac.th
DEBUG PROGRAM Suthida Chaichomchuen
2
DEBUG Program? เป็นโปรแกรมที่ใช้สำหรับตรวจสอบหาข้อผิดพลาดของโปรแกรม โดยจะแสดงรหัสในรูปแบบของเลขฐาน 16 และข้อมูลที่จะใส่เข้าไปก็ต้องเป็นเลขฐาน 16 ด้วย และยังสามารถ Run โปรแกรมในโหมดของการทำงานทีละขั้นได้
3
DEBUG allows ... View memory Enter programs in memory
Trace their execution
4
Rule of DEBUG Command DEBUG จะไม่สนใจตัวอักษรเล็กหรือใหญ่ โดยจะถือว่าเป็นตัวเดียวกัน เมื่อต้องการแยกค่า Parameter ออกจากคำสั่งให้ใส่เพียงช่องว่างเท่านั้น การอ้างถึง Segment และ Offset ต้องเขียนให้อยู่ในรูปแบบคือ Segment:Offset
5
Rule . . . DEBUG จะถือว่าตัวเลขทุกตัวเป็นเลขฐาน 16 หมด
6
DEBUG Commands A-Assemble C-Compare D-Display/Dump E-Enter F-Fill
7
Commands . . . G-Go H-Hexadecimal I-Input L-Load M-Move
8
Commands . . . N-Name O-Output P-Proceed Q-Quit R-Register
9
Commands . . . S-Search T-Trace U-Unassemble W-Write
10
The DEBUG Display The display consists of 3 parts :
Left : Hex Address [segment:offset] Center : Hexadecimal representation Right : ASCII representation Displays 8 lines of data (16 bytes/line) A hyphen (-) separates in each 8 bytes
11
Starting DEBUG C:\DEBUG <Enter> - (hyphen) - ? (help)
12
Q-Quit เป็นคำสั่งสำหรับออกจากโปรแกรม DEBUG โดยจะไม่มีการบันทึกไฟล์ก่อนออก มีรูปแบบคำสั่งคือ Q <Enter>
13
D-Display/Dump เป็นคำสั่งที่ใช้แสดงข้อมูลบางส่วนของหน่วยความจำในรูปแบบของ Hex และ ASCII รีจิสเตอร์ที่กำหนดเริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ D [address] or D [range]
14
D : Example D 200 D แสดงค่าที่ DS:200H จำนวน 80H bytes (128 bytes)
15
D : Example D CS:150 D DS:20 L5 D 300 32C
แสดงค่าที่ CS:150H จำนวน 80H bytes D DS:20 L5 แสดงค่าที่ DS:20H จำนวน 5 bytes D C แสดงค่าที่หน่วยความจำ 300 จนถึง 32C
16
D : Checking System Equipment
Location 410H-411H D 40:10
17
D : Checking System Equipment
15,14 : Number of parallel printer ports attached 11-9 : Number of serial ports attached 7,6 : Number of diskette devices 5,4 : Initial video mode 1 : 1=math coprocessor is present 0 : 1=diskette drive present
18
D : Checking Memory Size
Location 413H-414H D 40:13
19
D : Checking Serial Number & Copyright Notice
Location FE000H D FE00:0
20
D : Checking ROM BIOS Date
Location FFFF5H D FFFF:5
21
D : Checking Model ID Location FFFFEH D FFFF:E
22
D : Checking Model ID Number of model IDs: F8 : PS/2 models 70 and 80
FA : PS/2 model 30 FB : PC-XT (1986) FC : PC-AT (1984), PC-XT model 286, PS/2 models 50 and 60, etc. FE : PC-XT (1982), portable (1982) FF : Original IBM PC
23
E-Enter เป็นคำสั่งสำหรับใส่ข้อมูลหรือคำสั่งเครื่องลงในหน่วยความจำ รีจิสเตอร์ที่กำหนดเริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ E address [list]
24
E : Example E 105 13 3A 21 E CS:211 21 2A E 110 ‘anything’
ใส่ค่าที่ DS:105H จำนวน 3 bytes E CS: A ใส่ค่าที่ CS:211H จำนวน 2 bytes E 110 ‘anything’ ใส่ข้อความโดยเริ่มต้นที่ DS:110H
25
E : Example E 12C แสดงข้อมูลที่ DS:12CH
26
R-Register เป็นคำสั่งที่ใช้แสดงข้อมูลของรีจิสเตอร์และคำสั่งต่อไป มีรูปแบบคำสั่งคือ R [Registername]
27
R : Example R R DX R IP R F
28
R : Example FLAG NAME SET CLEAR OVERFLOW OV NV DIRECTION DN UP
INTERRUPT EI DI SIGN NG(-) PL(+)
29
R : Example FLAG NAME SET CLEAR ZERO ZR NZ AUXILLIARY AC NA
PARITY PE PO CARRY CY NC
30
T-Trace เป็นคำสั่งที่จะ Execute โปรแกรมที่ละ Step คู่ของรีจิสเตอร์ที่กำหนดคือ CS:IP มีรูปแบบคำสั่งคือ T [=address] [value]
31
T : Example T T 10 T =100 5
32
Machine Language Example I : Immediate data
Machine Instruction Symbolic Code B MOV AX,0123 ADD AX,0025 8BD8 MOV BX,AX 03D8 ADD BX,AX 8BCB MOV CX,BX 2BC8 SUB CX,AX 2BC0 SUB AX,AX 90 NOP
33
Keying in Program Instructions
E CS:100 B E CS:106 8B D D8 8B CB E CS:10C 2B C8 2B C0 90
34
Executing Program Instructions
35
Machine Language Example II : Defines data
DS OFFSET HEX CONTENTS 0200H H 0202H H 0204H H 0206H 2A2A2AH
36
Machine Language Example II . . .
Machine Instruction Symbolic Code A MOV AX,[0200] ADD AX,[0202] A MOV [0204],AX 90 NOP
37
Keying in Program Instructions & Data
E CS:100 A E CS:107 A E DS: E DS: A 2A 2A
38
Display Memory Contents
To view the code: D CS:100,10A To view the data: D DS:200,208
39
A-Assemble เป็นคำสั่งที่ใช้แปลคำสั่งภาษาแอสเซมบลีให้เป็นภาษาเครื่อง เหมาะสำหรับการเขียนและทดสอบโปรแกรมภาษาแอสเซมบลีแบบสั้น ๆ โดยค่าเริ่มต้นของแอดเดรสจะเริ่มที่ CS:0100H เสมอ
40
A : Example A A 100 A 104
41
A : Example A 100 MOV CL,42 MOV DL,2A ADD CL,DL NOP
42
U-Unassemble เป็นคำสั่งที่ตรงข้ามกับคำสั่ง A คือจะแปลภาษาเครื่องให้ป็นภาษาแอสเซมบลี คู่ของรีจิสเตอร์ที่กำหนดคือ CS:IP มีรูปแบบคำสั่งคือ U [address] or U [range]
43
U : Example U U 100 U 100,106
44
F-Fill เป็นคำสั่งที่นำค่าคงที่ ไปใส่ในขอบเขตของหน่วยความจำที่กำหนด รีจิสเตอร์ที่กำหนดเป็นค่าเริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ F range list
45
F : Example F 210 L19 ‘Help!’ F 210 229 ‘Help!’
กำหนดโดยใช้ Length คือ 19H (25) F ‘Help!’ กำหนดโดยใช้ Range 210H ถึง 229H
46
H-Hexadecimal เป็นคำสั่งที่ใช้แสดงค่าผลบวก และผลต่างของเลขฐาน 16 สองค่า กำหนดค่าได้สูงสุดคือ 4 หลัก โดยมีรูปแบบคำสั่งคือ H value1 value2
47
H : Example H 14F 22 ผลลัพธ์คือ 171 (sum) และ 12D (difference)
48
C-Compare เป็นคำสั่งที่ใช้เปรียบเทียบข้อมูลในหน่วยความจำ รีจิสเตอร์เริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ C [range] [address]
49
C : Example การเขียนคำสั่งสามารถทำได้ 2 วิธี
เปรียบเทียบข้อมูลทั้งหมด 10H bytes โดยเริ่มต้นที่ DS:050 กับ DS:200 C 050 L ; เปรียบเทียบโดยการระบุความยาวของหน่วยความจำ C F 200 ; เปรียบเทียบโดยการใช้ช่วง
50
M-Move เป็นคำสั่งเคลื่อนย้าย/คัดลอก ข้อมูลในหน่วยความจำ รีจิสเตอร์ที่กำหนดคือ DS มีรูปแบบคำสั่งคือ M range address
51
M : Example M DS:50 L100 DS:400 M DS:50 150 DS:400
กำหนดขนาดโดยใช้ Length M DS: DS:400 กำหนดขนาดโดยใข้ Range
52
S-Search เป็นคำสั่งที่ใช้ค้นหาตัวอักษรในหน่วยความจำ รีจิสเตอร์ที่กำหนดคือ DS มีรูปแบบคำสั่งคือ S range list
53
S : Example S L “VIRUS” S CS:
54
P-Proceed เป็นคำสั่งที่ใช้ Execute Subroutine CALL, LOOP, INT หรือ REP จนถึงคำสั่งถัดไป มีรูปแบบคำสั่งคือ P [=address] number
55
G-Go เป็นคำสั่งที่ใช้ในการ execute โปรแกรมที่พิมพ์เข้าไป รีจิสเตอร์ที่เป็นค่าเริ่มต้นคือ CS โดยมีรูปแบบคำสั่งคือ G [=address] address [address…] การ execute จะทำจนกระทั่งเจอคำสั่ง INT
56
G : Example A 100 MOV DL,61 MOV AH,2 INT 21 INT 20
57
G : Example G G =
58
N-Name เป็นคำสั่งใช้กำหนดชื่อโปรแกรมหรือไฟล์ที่ต้องการอ่านหรือเขียนบนดิสก์ มีรูปแบบคำสั่งคือ N pathname arglist โดยสามารถอ่านและเขียนไฟล์ได้เมื่อใช้ร่วมกับคำสั่ง L-Load หรือ W-Write
59
N : Example N A:Sam.com
60
W-Write เป็นคำสั่งที่ใช้เขียนไฟล์จาก DEBUG โดยใช้ร่วมกับคำสั่ง N-Name ในการกำหนดชื่อไฟล์ รีจิสเตอร์ที่กำหนดคือ CS มีรูปแบบคำสั่งคือ W [address] [drive] [firstsector] [number] ไฟล์ที่เก็บจะอยู่ในรูปแบบของนามสกุล .COM เท่านั้น
61
W นอกจากนี้สามารถใช้ในรูปแบบที่ไม่มี Operand ได้โดยการใช้คู่ของรีจิสเตอร์ BX:CX เป็นตัวกำหนดขนาดของไฟล์แทน
62
W R BX ; เรียกใช้รีจิสเตอร์ BX 0 ; กำหนด BX=0 N filespec ; ใส่ชื่อไฟล์
R CX ; เรียกใช้รีจิสเตอร์ CX length ; ใส่ขนาดของไฟล์ในรูปแบบของ Hex W ; เขียนไฟล์
63
L-Load เป็นคำสั่ง load File หรือ Disk Sector มาไว้ใน Memory คำสั่งมี 2 รูปแบบคือ 1. เรียก DEBUG พร้อมด้วย ไฟล์.EXE 2. เรียกโดยใช้ร่วมกับคำสั่ง N เมื่ออยู่ในโปรแกรม DEBUG แล้ว
64
L : Example C:\DEBUG SAM.EXE L [address] N c:\sam.exe ; Name of file
L ; Load at CS:100
65
L : Example L [address [drive start number]] L 100 0 20 15
address ; ตำแหน่งหน่วยความจำเริ่มต้นที่ต้องการ Load ข้อมูล (Default คือ CS:100) drive ; กำหนด disk drive (0=A, 1=B etc.) start ; ระบุเซกเตอร์แรกที่จะ Load (default คือ 0) number ; จำนวนของเซกเตอร์ที่ต้องการ Load L
66
I-Input เป็นคำสั่งสำหรับใส่ค่าและแสดงค่า 1 byte จาก Port รูปแบบคำสั่งคือ I portaddress
67
O-Output เป็นคำสั่งใช้ส่งข้อมูล 1 byte ออก Port มีรูปแบบคำสั่งคือ
O port byte
68
INT instruction : Getting the Current Date
MOV AH,2A INT 21 NOP
69
INT : Getting the Current Date
AL: Day of week (0=Sunday) CX: Year (07D0H=2000) DH: Month (01H - 0CH) DL: Day of the month (01H-1FH)
70
INT : Determining the size of memory
NOP AX = The size of base memory
71
INT : Displays data on the screen
100 MOV AH,09 102 MOV DX,108 105 INT 21 107 NOP 108 DB ‘your name’,’$’
72
INT : Keyboard Input 100 MOV AH,10 102 INT 16 104 JMP 100 106 NOP
73
Using the PTR operator 100 MOV AX,[11A] 103 ADD AX,[11C] 107 ADD AX,25
10A MOV [11E],AX 10D MOV WORD PTR [120],25 113 MOV BYTE PTR [122],30
74
PTR operator . . . 118 NOP 119 NOP 11A DB 14,23 11C DB 05,00
11E DB 00,00 120 DB 00,00,00
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.