Suthida Chaichomchuen

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คณิตคิดเร็วโดยใช้นิ้วมือ
Advertisements

ที่ โรงเรียน เฉลี่ย 1 บ้านหนองหว้า บ้านสะเดาหวาน
โครงสร้างโปรแกรมภาษา C
ยินดีต้อน เข้าสู่ โครงงาน.
พลังงานในกระบวนการทางความร้อน : กฎข้อที่หนึ่งของอุณหพลศาสตร์
การซ้อนทับกัน และคลื่นนิ่ง
2.2.3 การแก้ไขแอดเดรส โดยการใช้อินเด็กรีจิสเตอร์
นายรังสฤษดิ์ตั้งคณารหัส นายวสันต์ชานุชิตรหัส
Computer Programming 1 1.หากต้องการพิมพ์ให้ได้ผลลัพธ์ดังนี้ต้องเขียน code อย่างไร (ใช้for)
นวัตกรรมน่ารู้ นางสาวสินีนาฎ อุ่นใจเพื่อน
แนวทางการรายงานผลการปฏิบัติราชการโดยผ่านระบบเครือข่ายอินเตอร์เน็ต
มิติที่ 1 มิติด้านประสิทธิผลตามแผนปฏิบัติราชการ
เปรียบเทียบจำนวนประชากรทั้งหมดจากฐาน DBPop Original กับจำนวนประชากรทั้งหมดที่จังหวัดถือเป็นเป้าหมาย จำนวน (คน) 98.08% % จังหวัด.
CS Assembly Language Programming
จำนวนนักเรียนที่เข้าสอบ ผลการทดสอบและคะแนนเฉลี่ยระดับประเทศทางการศึกษาระดับชาติขั้นพื้นฐาน (O-NET) ระดับชั้นมัธยมศึกษาปีที่ 6 ปีการศึกษา จัดทำโดย.
LAB # 3 Computer Programming 1
การเลื่อนเงินเดือนข้าราชการ
การสืบค้นข้อมูลจาก Web OPAC
สำเร็จการศึกษาในเวลา 4 ปี
ตัวแปรชุด.
จำนวนนับใดๆ ที่หารจำนวนนับที่กำหนดให้ได้ลงตัว เรียกว่า ตัวประกอบของจำนวนนับ จำนวนนับ สามารถเรียกอีกอย่างว่า จำนวนเต็มบวก หรือจำนวนธรรมชาติ ซึ่งเราสามารถนำจำนวนนับเหล่านี้มา.
ขั้นตอนการแปลงไฟล์.
การขอเบิกเงินนอกงบประมาณ
ตารางเปรียบเทียบ ปริมาณน้ำฝน - ปริมาณน้ำท่า กลุ่มลุ่มน้ำสาขาแม่น้ำโขง
SCC : Suthida Chaichomchuen
Control Transfer Instructions
Addressing Modes Assembly Programming.
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
การสืบค้นข้อมูลจาก Web OPAC
ดีบักเป็นเครื่องมืออันหนึ่งที่ให้ผู้ใช้ ตรวจสอบ และแก้ไขค่าใน หน่วยความจำ โหลด เก็บ ตรวจสอบค่าในเรจิสเตอร์ และสามารถ เขียนโปรแกรมแอสเซมบลีได้อย่าง สะดวก.
ASSIGN3-4. InstructionResult Z-FlagC-FlagP-FlagS-FlagO-Flag MOV AL,9Eh 9Eh H ????? ADDAL,9Eh 3C ADD AL,1Eh 5A
บทที่ 15 โปรแกรมย่อยและแสต็ก
ธนาวินท์ รักธรรมานนท์
ธนาวินท์ รักธรรมานนท์
โปรแกรมภาษาแอสเซมบลี้ (2)
การดำเนินงานอาชีวเวชศาสตร์: แพทย์ที่ผ่านการอบรม
Debug #2 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
เซกเมนต์ (Segment) โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
อินเทอร์รัพท์ (Interrupt)
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ Debug #1 มหาวิทยาลัยเนชั่น จังหวัดลำปาง ผศ. บุรินทร์
Office of information technology
ข้อมูลเศรษฐกิจการค้า
งานอนามัยแม่และเด็ก ปี 2551
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 30 มิถุนายน 2555 สำนักวิชาการและ แผนงาน.
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 31 พฤษภาคม 2555.
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 15 มิถุนายน 2555.
พระราชบัญญัติ คุ้มครองแรงงาน (ฉบับที่ 4) พ. ศ
การดำเนินงานตามแผนปฏิบัติการ โครงการที่ได้รับ
ภาพรวมเศรษฐกิจไทยล่าสุด (ณ เดือนตุลาคม) และแนวโน้มไตรมาส 3/50 และ 4/50
การเข้า E-Conference จากทุกหน่วยงานประชุมศูนย์ ปฏิบัติการการเงินการคลัง กลุ่มประกันสุขภาพ 2554.
CS Assembly Language Programming
โรคทางระบาดวิทยาที่มีอัตราป่วยสูง 10 ลำดับแรกของจังหวัดเลย สะสมตั้งแต่วันที่ 1 มกราคม – 29 เมษายน 2555.
ผลการทดสอบทางการศึกษา ระดับชาติขั้นพื้นฐาน ( O-NET) ระดับชั้นมัธยมศึกษาปีที่ 6 ผู้จัดทำ นางสาวภัทศิรา ภูมิเมือง เลขที่ 16 นางสาวสุพัชรญา มะโนรา เลขที่
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
สรุปผลสัมฤทธิ์ปีการศึกษา 2552 ชั้ น จำนว นสาระการเรียนรู้ นักเรี ยนทค ค. เพิ่มวสพ.พ. ศ.ศ. ดน ตรีง.ง. คอ ม. อ อ. เพิ่ม ป.1ป
ณ โรงแรมมารวยการ์เด็น ธันวาคม 2555
สรุปผลการสำรวจ ความคิดเห็นของประชาชนเกี่ยวกับ การป้องกันและปราบปรามยาเสพติด (ก่อนและหลัง การประกาศสงครามขั้นแตกหักเพื่อเอาชนะยาเสพติด) พ.ศ สำนักงานสถิติแห่งชาติ
ผลการทดสอบทางการศึกษาระดับชาติขั้นพื้นฐาน
การค้นในปริภูมิสถานะ
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
สถานการณ์ โรคเฝ้าระวังทางระบาดวิทยา มิถุนายน 2554 งานระบาดวิทยา งานระบาดวิทยา สำนักงานสาธารณสุขอำเภอเมืองลำปาง.
กราฟเบื้องต้น.
การปรับเงินเดือน กรณีที่เงินเดือนยังไม่ถึงขั้นต่ำของระดับ
โครงสร้างข้อมูลแบบ สแตก (stack)
กราฟเบื้องต้น.
ผลการประเมิน คุณภาพการศึกษาขั้นพื้นฐาน ปีการศึกษา
1 LAN Implementation Sanchai Yeewiyom School of Information & Communication Technology Naresuan University, Phayao Campus.
แผนภูมิแสดงแผนและผลการใช้จ่ายงบประมาณปี 2549 การใช้ จ่าย ( สะสม ) ต.ค.ต.ค. พ.ย.พ.ย. ธ.ค.ธ.ค. ม.ค.ม.ค. ก.พ.ก.พ. มี. ค. เม. ย. พ.ค.พ.ค. มิ. ย. ก.ค. ก.ค.
ใบสำเนางานนำเสนอ:

Suthida Chaichomchuen std@kmitnb.ac.th DEBUG PROGRAM Suthida Chaichomchuen std@kmitnb.ac.th

DEBUG Program? เป็นโปรแกรมที่ใช้สำหรับตรวจสอบหาข้อผิดพลาดของโปรแกรม โดยจะแสดงรหัสในรูปแบบของเลขฐาน 16 และข้อมูลที่จะใส่เข้าไปก็ต้องเป็นเลขฐาน 16 ด้วย และยังสามารถ Run โปรแกรมในโหมดของการทำงานทีละขั้นได้

DEBUG allows ... View memory Enter programs in memory Trace their execution

Rule of DEBUG Command DEBUG จะไม่สนใจตัวอักษรเล็กหรือใหญ่ โดยจะถือว่าเป็นตัวเดียวกัน เมื่อต้องการแยกค่า Parameter ออกจากคำสั่งให้ใส่เพียงช่องว่างเท่านั้น การอ้างถึง Segment และ Offset ต้องเขียนให้อยู่ในรูปแบบคือ Segment:Offset

Rule . . . DEBUG จะถือว่าตัวเลขทุกตัวเป็นเลขฐาน 16 หมด

DEBUG Commands A-Assemble C-Compare D-Display/Dump E-Enter F-Fill

Commands . . . G-Go H-Hexadecimal I-Input L-Load M-Move

Commands . . . N-Name O-Output P-Proceed Q-Quit R-Register

Commands . . . S-Search T-Trace U-Unassemble W-Write

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

Starting DEBUG C:\DEBUG <Enter> - (hyphen) - ? (help)

Q-Quit เป็นคำสั่งสำหรับออกจากโปรแกรม DEBUG โดยจะไม่มีการบันทึกไฟล์ก่อนออก มีรูปแบบคำสั่งคือ Q <Enter>

D-Display/Dump เป็นคำสั่งที่ใช้แสดงข้อมูลบางส่วนของหน่วยความจำในรูปแบบของ Hex และ ASCII รีจิสเตอร์ที่กำหนดเริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ D [address] or D [range]

D : Example D 200 D แสดงค่าที่ DS:200H จำนวน 80H bytes (128 bytes)

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 300 32C แสดงค่าที่หน่วยความจำ 300 จนถึง 32C

D : Checking System Equipment Location 410H-411H D 40:10

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

D : Checking Memory Size Location 413H-414H D 40:13

D : Checking Serial Number & Copyright Notice Location FE000H D FE00:0

D : Checking ROM BIOS Date Location FFFF5H D FFFF:5

D : Checking Model ID Location FFFFEH D FFFF:E

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

E-Enter เป็นคำสั่งสำหรับใส่ข้อมูลหรือคำสั่งเครื่องลงในหน่วยความจำ รีจิสเตอร์ที่กำหนดเริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ E address [list]

E : Example E 105 13 3A 21 E CS:211 21 2A E 110 ‘anything’ ใส่ค่าที่ DS:105H จำนวน 3 bytes E CS:211 21 2A ใส่ค่าที่ CS:211H จำนวน 2 bytes E 110 ‘anything’ ใส่ข้อความโดยเริ่มต้นที่ DS:110H

E : Example E 12C แสดงข้อมูลที่ DS:12CH

R-Register เป็นคำสั่งที่ใช้แสดงข้อมูลของรีจิสเตอร์และคำสั่งต่อไป มีรูปแบบคำสั่งคือ R [Registername]

R : Example R R DX R IP R F

R : Example FLAG NAME SET CLEAR OVERFLOW OV NV DIRECTION DN UP INTERRUPT EI DI SIGN NG(-) PL(+)

R : Example FLAG NAME SET CLEAR ZERO ZR NZ AUXILLIARY AC NA PARITY PE PO CARRY CY NC

T-Trace เป็นคำสั่งที่จะ Execute โปรแกรมที่ละ Step คู่ของรีจิสเตอร์ที่กำหนดคือ CS:IP มีรูปแบบคำสั่งคือ T [=address] [value]

T : Example T T 10 T =100 5

Machine Language Example I : Immediate data Machine Instruction Symbolic Code B82301 MOV AX,0123 052500 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

Keying in Program Instructions E CS:100 B8 23 01 05 25 00 E CS:106 8B D8 03 D8 8B CB E CS:10C 2B C8 2B C0 90

Executing Program Instructions

Machine Language Example II : Defines data DS OFFSET HEX CONTENTS 0200H 2301H 0202H 2500H 0204H 0000H 0206H 2A2A2AH

Machine Language Example II . . . Machine Instruction Symbolic Code A10002 MOV AX,[0200] 03060202 ADD AX,[0202] A30402 MOV [0204],AX 90 NOP

Keying in Program Instructions & Data E CS:100 A1 00 02 03 06 02 02 E CS:107 A3 04 02 90 E DS:0200 23 01 25 00 00 00 E DS:0206 2A 2A 2A

Display Memory Contents To view the code: D CS:100,10A To view the data: D DS:200,208

A-Assemble เป็นคำสั่งที่ใช้แปลคำสั่งภาษาแอสเซมบลีให้เป็นภาษาเครื่อง เหมาะสำหรับการเขียนและทดสอบโปรแกรมภาษาแอสเซมบลีแบบสั้น ๆ โดยค่าเริ่มต้นของแอดเดรสจะเริ่มที่ CS:0100H เสมอ

A : Example A A 100 A 104

A : Example A 100 MOV CL,42 MOV DL,2A ADD CL,DL NOP

U-Unassemble เป็นคำสั่งที่ตรงข้ามกับคำสั่ง A คือจะแปลภาษาเครื่องให้ป็นภาษาแอสเซมบลี คู่ของรีจิสเตอร์ที่กำหนดคือ CS:IP มีรูปแบบคำสั่งคือ U [address] or U [range]

U : Example U U 100 U 100,106

F-Fill เป็นคำสั่งที่นำค่าคงที่ ไปใส่ในขอบเขตของหน่วยความจำที่กำหนด รีจิสเตอร์ที่กำหนดเป็นค่าเริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ F range list

F : Example F 210 L19 ‘Help!’ F 210 229 ‘Help!’ กำหนดโดยใช้ Length คือ 19H (25) F 210 229 ‘Help!’ กำหนดโดยใช้ Range 210H ถึง 229H

H-Hexadecimal เป็นคำสั่งที่ใช้แสดงค่าผลบวก และผลต่างของเลขฐาน 16 สองค่า กำหนดค่าได้สูงสุดคือ 4 หลัก โดยมีรูปแบบคำสั่งคือ H value1 value2

H : Example H 14F 22 ผลลัพธ์คือ 171 (sum) และ 12D (difference)

C-Compare เป็นคำสั่งที่ใช้เปรียบเทียบข้อมูลในหน่วยความจำ รีจิสเตอร์เริ่มต้นคือ DS โดยมีรูปแบบคำสั่งคือ C [range] [address]

C : Example การเขียนคำสั่งสามารถทำได้ 2 วิธี เปรียบเทียบข้อมูลทั้งหมด 10H bytes โดยเริ่มต้นที่ DS:050 กับ DS:200 C 050 L10 200 ; เปรียบเทียบโดยการระบุความยาวของหน่วยความจำ C 050 05F 200 ; เปรียบเทียบโดยการใช้ช่วง

M-Move เป็นคำสั่งเคลื่อนย้าย/คัดลอก ข้อมูลในหน่วยความจำ รีจิสเตอร์ที่กำหนดคือ DS มีรูปแบบคำสั่งคือ M range address

M : Example M DS:50 L100 DS:400 M DS:50 150 DS:400 กำหนดขนาดโดยใช้ Length M DS:50 150 DS:400 กำหนดขนาดโดยใข้ Range

S-Search เป็นคำสั่งที่ใช้ค้นหาตัวอักษรในหน่วยความจำ รีจิสเตอร์ที่กำหนดคือ DS มีรูปแบบคำสั่งคือ S range list

S : Example S 300 L 2000 “VIRUS” S CS:100 400 51

P-Proceed เป็นคำสั่งที่ใช้ Execute Subroutine CALL, LOOP, INT หรือ REP จนถึงคำสั่งถัดไป มีรูปแบบคำสั่งคือ P [=address] number

G-Go เป็นคำสั่งที่ใช้ในการ execute โปรแกรมที่พิมพ์เข้าไป รีจิสเตอร์ที่เป็นค่าเริ่มต้นคือ CS โดยมีรูปแบบคำสั่งคือ G [=address] address [address…] การ execute จะทำจนกระทั่งเจอคำสั่ง INT

G : Example A 100 MOV DL,61 MOV AH,2 INT 21 INT 20

G : Example G G =100 104

N-Name เป็นคำสั่งใช้กำหนดชื่อโปรแกรมหรือไฟล์ที่ต้องการอ่านหรือเขียนบนดิสก์ มีรูปแบบคำสั่งคือ N pathname arglist โดยสามารถอ่านและเขียนไฟล์ได้เมื่อใช้ร่วมกับคำสั่ง L-Load หรือ W-Write

N : Example N A:Sam.com

W-Write เป็นคำสั่งที่ใช้เขียนไฟล์จาก DEBUG โดยใช้ร่วมกับคำสั่ง N-Name ในการกำหนดชื่อไฟล์ รีจิสเตอร์ที่กำหนดคือ CS มีรูปแบบคำสั่งคือ W [address] [drive] [firstsector] [number] ไฟล์ที่เก็บจะอยู่ในรูปแบบของนามสกุล .COM เท่านั้น

W นอกจากนี้สามารถใช้ในรูปแบบที่ไม่มี Operand ได้โดยการใช้คู่ของรีจิสเตอร์ BX:CX เป็นตัวกำหนดขนาดของไฟล์แทน

W R BX ; เรียกใช้รีจิสเตอร์ BX 0 ; กำหนด BX=0 N filespec ; ใส่ชื่อไฟล์ R CX ; เรียกใช้รีจิสเตอร์ CX length ; ใส่ขนาดของไฟล์ในรูปแบบของ Hex W ; เขียนไฟล์

L-Load เป็นคำสั่ง load File หรือ Disk Sector มาไว้ใน Memory คำสั่งมี 2 รูปแบบคือ 1. เรียก DEBUG พร้อมด้วย ไฟล์.EXE 2. เรียกโดยใช้ร่วมกับคำสั่ง N เมื่ออยู่ในโปรแกรม DEBUG แล้ว

L : Example C:\DEBUG SAM.EXE L [address] N c:\sam.exe ; Name of file L ; Load at CS:100

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 100 0 20 15

I-Input เป็นคำสั่งสำหรับใส่ค่าและแสดงค่า 1 byte จาก Port รูปแบบคำสั่งคือ I portaddress

O-Output เป็นคำสั่งใช้ส่งข้อมูล 1 byte ออก Port มีรูปแบบคำสั่งคือ O port byte

INT instruction : Getting the Current Date MOV AH,2A INT 21 NOP

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)

INT : Determining the size of memory NOP AX = The size of base memory

INT : Displays data on the screen 100 MOV AH,09 102 MOV DX,108 105 INT 21 107 NOP 108 DB ‘your name’,’$’

INT : Keyboard Input 100 MOV AH,10 102 INT 16 104 JMP 100 106 NOP

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

PTR operator . . . 118 NOP 119 NOP 11A DB 14,23 11C DB 05,00 11E DB 00,00 120 DB 00,00,00