เกี่ยวกับ0xCC
และ0xCD
โดยเฉพาะอย่างยิ่งเหล่านี้เป็นพระธาตุจากIntel 8088 / 8086คำสั่งประมวลผลชุดย้อนกลับไปในปี 1980 0xCC
เป็นกรณีพิเศษของซอฟแวร์การขัดจังหวะ opcode พิเศษรุ่นเดียวไบต์ช่วยให้โปรแกรมที่จะสร้างการขัดจังหวะ 3INT
0xCD
0xCC
แม้ว่าโดยทั่วไปแล้วหมายเลขซอฟต์แวร์ขัดจังหวะโดยพลการINT 3
ถูกนำมาใช้แบบดั้งเดิมสำหรับฟังก์ชั่นการดีบักเกอร์หรือเบรกพอยต์ เมื่อใดก็ตามที่มีการเปิดตัวดีบั๊กมันจะติดตั้งตัวจัดการอินเตอร์รัปต์เพื่อINT 3
ที่ว่าเมื่อมีการเรียกใช้ opcode ตัวดีบั๊กจะถูกเรียกใช้ โดยทั่วไปจะหยุดโปรแกรมที่กำลังทำงานอยู่ชั่วคราวและแสดงพรอมต์แบบโต้ตอบ
โดยปกติแล้ว x86 INT
opcode คือสองไบต์: 0xCD
ตามด้วยหมายเลขขัดจังหวะที่ต้องการตั้งแต่ 0-255 ตอนนี้ถึงแม้ว่าคุณจะสามารถออก0xCD 0x03
สำหรับINT 3
อินเทลตัดสินใจที่จะเพิ่มพิเศษ version-- 0xCC
ไม่มีไบต์เพิ่มเติม - เพราะ opcode ต้องมีเพียงหนึ่งไบต์เพื่อฟังก์ชั่นเป็นที่เชื่อถือได้ 'เติมไบต์' สำหรับหน่วยความจำที่ไม่ได้ใช้
จุดนี่คือการอนุญาตให้สำหรับการกู้คืนที่สง่างามถ้าหน่วยประมวลผลผิดพลาดกระโดดลงไปในหน่วยความจำที่ไม่ได้มีคำแนะนำใด ๆ ที่ตั้งใจไว้ คำแนะนำแบบหลายไบต์ไม่เหมาะกับจุดประสงค์นี้เนื่องจากการข้ามที่ผิดพลาดอาจมาถึงการชดเชยไบต์ที่เป็นไปได้ซึ่งจะต้องดำเนินการต่อด้วยคำสั่งที่สร้างขึ้นอย่างถูกต้อง
เห็นได้ชัดว่า opcodes หนึ่งไบต์ทำงานนิด ๆ นี้ แต่มียังสามารถเป็นข้อยกเว้นที่เล่นโวหาร: ยกตัวอย่างเช่นเมื่อพิจารณาจากลำดับการเติม0xCDCDCDCD
(ยังเป็นที่กล่าวถึงในหน้านี้) เราจะเห็นว่ามันมีความน่าเชื่อถือเป็นธรรมตั้งแต่ไม่ว่าที่ตัวชี้สอนที่ดิน ( ยกเว้นบางทีไบต์สุดท้ายที่เต็มไป) ซีพียูสามารถกลับมาดำเนินการตามคำสั่ง x86 แบบสองไบต์ที่ถูกต้องCD CD
ในกรณีนี้เพื่อสร้างซอฟต์แวร์ขัดจังหวะ 205 (0xCD)
Weirder ยังในขณะที่CD CC CD CC
ตีความได้ 100% - ให้ลำดับใด- INT 3
หรือINT 204
- CC CD CC CD
มีความน่าเชื่อถือน้อยกว่าเพียง 75% ตามที่แสดง แต่โดยทั่วไป 99.99% เมื่อทำซ้ำเป็นฟิลเลอร์หน่วยความจำขนาดใหญ่
ข้อมูลอ้างอิงแอสเซมเบลอร์มาโคร , 1987