1 / 19

คำสั่งในดีบัก

คำสั่งในดีบัก. ดีบักคืออะไร.

Download Presentation

คำสั่งในดีบัก

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. คำสั่งในดีบัก

  2. ดีบักคืออะไร ดีบักเป็นเครื่องมืออันหนึ่งที่ให้ผู้ใช้ตรวจสอบและแก้ไขค่าในหน่วยความจำ โหลดเก็บ ตรวจสอบค่าในเรจิสเตอร์และสามารถเขียนโปรแกรมแอสเซมบลีได้อย่างสะดวกดีบักเป็นซอฟต์แวร์ที่มากับระบบปฏิบัติการดอส เป็นไฟล์ประเภท COMไฟล์ ดังนั้นการเรียกใช้เพียงแต่ระบุชื่อไฟล์ (เมื่ออยู่ที่ดอสพร้อมต์)

  3. ดังนี้C:\> debug เมื่อดีบักพร้อมที่จะทำงานจะอยู่ที่ Hyphen Prompt แสดงเครื่องหมาย Hyphen (-) C:\> debug ณ Hyphen Prompt ผู้ใช้สามารถใช้คำสั่งของดีบักได้และคำสั่งที่ให้ออกจากดีบักคือ Q(Quit) -Q

  4. ชนิดของข่าวสารที่เป็นส่วนของคำสั่งดีบักชนิดของข่าวสารที่เป็นส่วนของคำสั่งดีบัก • 1. คำสั่งหนึ่งอักขระ (command letter) • เลขที่อยู่ (address) • 3. ชื่อเรจิสเตอร์ (register name) • 4. ชื่อแฟ้มข้อมูล (file name) • 5. ชื่อไดรฟ์ (drive name) • 6. ข้อมูล (data)

  5. แบ่งคำสั่งดีบักในได้ 3 กลุ่ม • 1. คำสั่งตรวจสอบและแก้ไขค่าในหน่วยความจำ • คำสั่งเขียนและให้โปรแกรมทำงาน • คำสั่งโหลดและเซฟ

  6. ชนิดของข่าวสารที่เป็นส่วนของคำสั่งดีบักชนิดของข่าวสารที่เป็นส่วนของคำสั่งดีบัก กลุ่มคำสั่งตรวจสอบและแก้ไขค่าในหน่วยความจำนี้ มีความจำเป็นต่อการตรวจสอบแก้ไขโปรแกรมเช่นอาจต้องตรวจสอบค่าในหน่วยความจำก่อน และหลังโปรแกรมทำงาน กลุ่มคำสั่งนี้มี DUMP, ENTER , FILL, MOVE, COMPARE และ SEARCH

  7. 1. D = dump คำสั่งนี้แสดงข้อมูลบางส่วนในหน่วยความจำแสดงไบต์ของหมายเลขรหัสแอสกีและอักขระของรหัสนั้นสามารถระบุเลขที่อยู่เริ่มต้นและเลขที่อยู่สุดท้ายของหน่วยความจำที่ต้องการถ้าไม่ระบุเลขที่อยู่สุดท้าย

  8. ดีบักจะแสดงให้ 8 แถวแต่ละแถวแสดง 16 ไบต์ ตัวเลขที่แสดงเป็นเลขฐานสิบหก(Hexadecimal)และค่าดีฟอลต์ของคำสั่ง DUMP นี้เป็นเซกเมนต์ข้อมูล (Data Segment)  รูปแบบคำสั่ง D [starting address] [ending address]

  9. การระบุเลขที่อยู่หน่วยความจำที่ต้องการทำงานในดีบักสามารถระบุเป็นเรจิสเตอร์คู่เซกเมนต์และออฟเซตหรือเพียงระบุเลขที่อยู่เพียงค่าออฟเซตดีบักจะใช้เซกเมนต์ด้วยค่าที่เป็นค่าที่กำหนดโดยปริยายหรือค่าดีฟอลต์ (Default) คำสั่งที่จัดการกับข้อมูลในหน่วยความจำมีดีฟอลต์เซกเมนต์เป็นเซกเมนต์ข้อมูล (Data Segment)

  10. ดีบักแสดงผลเป็นสามคอลัมน์คอลัมน์แรกทางซ้ายแสดงเลขที่อยู่คอลัมน์ที่สองแสดงไบต์ของข้อมูลเป็นเลขฐานสิบหกค่าหนึ่งไบต์เป็นเลขฐานสิบหกสองหลักจำนวน 16 ไบต์ต่อแถวคอลัมน์ทางขวาแสดงอักขระของรหัสแอสกี (ASCII = American Standard Code for Information Interchange)ของแอสกีของอักขระในคอลัมน์ที่สองซึ่งในบางเลขที่อยู่แสดงอักขระเป็น dots (.) สำหรับอักขระเป็น nonprintable เช่นแอสกีหมายเลข 00h และ FFh

  11. 2. E = Enter แก้ไขค่าในหน่วยความจำ รูปแบบคำสั่ง E [address] [list] address เลขที่อยู่หน่วยความจำที่ต้องการแก้ไขค่า list ชุดของข้อมูลที่ให้แทนที่ในเลขที่อยู่ที่ระบุ

  12. 3. F = fill เติมบางส่วนของหน่วยความจำเป็นกลุ่มหรือเป็นบล็อกด้วยค่าที่ระบุ รูปแบบคำสั่ง F [starting address] [ending address] [list]

  13. 4. M=Move คำสั่งนี้ให้ผู้ใช้ก๊อบปี้บล็อกข้อมูลจากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่งในหน่วยความจำ รูปแบบคำสั่ง M [starting address] [ending address] [destination address]

  14. 5. C=Compare เปรียบเทียบบล็อกข้อมูลสองบล็อกในหน่วยความจำ รูปแบบคำสั่ง C [starting address] [ending address] [destination]

  15. ผลการโต้ตอบของดีบักเป็นดังนี้ดีบักจะแสดงหมายเลขที่อยู่และค่าในทั้งสองตำแหน่งนั้นที่พบว่ามีข้อมูลไม่เหมือนกัน (ถ้าในบล็อกทั้งสองมีข้อมูลที่เหมือนกันดีบักจะไม่แสดงผลใดๆ)

  16. 6. S=Search ค้นหาข้อมูลในหน่วยความจำถ้าค้นหาพบดีบักจะแสดงหมายเลขเลขที่อยู่ให้ รูปแบบคำสั่ง S [starting address] [ending address] [list]

  17. การจัดการกับเรจิสเตอร์การจัดการกับเรจิสเตอร์ เรจิสเตอร์ภายในซีพียูเป็นเสมือนตัวแปรที่มีให้ใช้แต่เรจิสเตอร์แต่ละตัวมีหน้าที่เฉพาะทางอยู่บ้างและบางเรจิสเตอร์ก็เปลี่ยนค่าไปอย่างอัตโนมัติเช่น IP จะชี้ที่อยู่ของคำสั่งถัดไปที่จะทำงาน

  18. ในดีบักมีคำสั่งของแสดงค่าในเรจิสเตอร์แต่ละตัว และผู้ใช้สามารถแก้ไขค่าในเรจิสเตอร์ได้ด้วยคำสั่ง R (Register) การแก้ไขค่าในเรจิสเตอร์ใช้คำสั่ง R ตามด้วยชื่อเรจิสเตอร์ที่ต้องการ

  19. เช่น RAX หมายถึงต้องการแก้ไขค่าของเรจิสเตอร์ AX โดยดีบักจะแสดงค่าของเรจิสเตอร์นั้นและยอมให้ผู้ใช้ป้อนเข้าค่าใหม่ลงไปได้ -rax AX 0000 ค่าเดิม : ป้อนเข้าค่าใหม่

More Related