Mengenai 0xCCdan 0xCDkhususnya, ini adalah peninggalan dari Intel 8088 / 8086 instruksi prosesor set kembali pada 1980-an. 0xCCadalah kasus khusus dari opcode interupsi perangkat lunak . Versi byte tunggal khusus memungkinkan program untuk menghasilkan interrupt 3 .INT 0xCD0xCC
Meskipun angka interupsi perangkat lunak, pada prinsipnya, arbitrer, INT 3secara tradisional digunakan untuk fungsi debugger break atau breakpoint , sebuah konvensi yang masih ada hingga hari ini. Setiap kali debugger diluncurkan, ia menginstal interrupt handler untuk INT 3sedemikian rupa sehingga ketika opcode dijalankan, debugger akan terpicu. Biasanya itu akan menghentikan sementara pemrograman yang sedang berjalan dan menampilkan prompt interaktif.
Biasanya, INTopcode x86 adalah dua byte: 0xCDdiikuti oleh angka interupsi yang diinginkan dari 0-255. Sekarang meskipun Anda bisa mengeluarkan 0xCD 0x03untuk INT 3, Intel memutuskan untuk menambahkan khusus sebuah version-- 0xCCtanpa byte tambahan - karena opcode harus hanya satu byte untuk fungsi sebagai 'mengisi byte' yang handal untuk memori yang tidak terpakai.
Intinya di sini adalah untuk memungkinkan pemulihan yang anggun jika prosesor keliru melompat ke memori yang tidak mengandung instruksi yang dimaksud . Instruksi multi-byte tidak cocok untuk tujuan ini karena lompatan yang salah dapat mendarat pada byte byte yang mungkin di mana ia harus melanjutkan dengan aliran instruksi yang dibentuk dengan benar.
Jelas, satu-byte opcodes bekerja sepele untuk ini, tetapi bisa juga ada pengecualian unik: misalnya, mengingat urutan pengisian 0xCDCDCDCD(juga disebutkan pada halaman ini), kita dapat melihat bahwa itu cukup dapat diandalkan karena di mana pun penunjuk instruksi mendarat ( kecuali mungkin byte terisi terakhir), CPU dapat melanjutkan mengeksekusi instruksi dua-byte x86 yang valid CD CD, dalam hal ini untuk menghasilkan interupsi perangkat lunak 205 (0xCD).
Lebih aneh lagi, sedangkan CD CC CD CC100% dapat ditafsirkan - memberikan salah satu INT 3atau INT 204- urutan CC CD CC CDkurang dapat diandalkan, hanya 75% seperti yang ditunjukkan, tetapi umumnya 99,99% ketika diulang sebagai pengisi memori ukuran int.

Referensi Makro Assembler , 1987