İle ilgili olarak 0xCCve 0xCDözellikle, bunlardan kalıntıları olan Intel bir 8088 / 8086 1980'lerde işlemci komut seti arka. yazılım kesme opcode 0xCCözel bir durumudur . Özel tek baytlık sürüm , bir programın kesme 3 üretmesine izin verir .INT 0xCD0xCC
Yazılım kesme sayıları, prensip olarak, keyfi olarak, hata ayıklayıcı kesme veya kesme noktası işlevi INT 3için geleneksel olarak kullanılmasına rağmen , günümüze kadar devam eden bir kuraldır. Bir hata ayıklayıcı her başlatıldığında, bu opcode yürütüldüğünde hata ayıklayıcı tetiklenecek şekilde bir kesme işleyicisi yükler . Genellikle o anda çalışan programlamayı duraklatır ve etkileşimli bir istem gösterir.INT 3
Normalde, x86 INTopcode'u iki bayttır: 0xCDarkasından 0-255 arasında istenen kesme numarası gelir. Şimdi sorunu her ne kadar 0xCD 0x03için INT 3Intel version-- özel eklemeye karar, 0xCCbir işlem kodu kullanılmayan bellek için güvenilir bir 'dolgu byte' olarak işleve amacıyla tek bayt olmalıdır çünkü - hiçbir ek bayt ile.
Buradaki nokta , işlemci yanlışlıkla herhangi bir talimat içermeyen belleğe atlarsa, zarif bir kurtarma işlemi sağlamaktır . Çok baytlı talimatlar bu amaca uygun değildir, çünkü hatalı bir sıçrama, düzgün oluşturulmuş bir talimat akışıyla devam etmesi gereken herhangi bir olası bayt uzaklığına inebilir.
Açıkçası, bir baytlık opcodes bunun için önemsiz bir şekilde çalışır, ancak ilginç istisnalar da olabilir: örneğin, doldurma sekansı 0xCDCDCDCD(bu sayfada da belirtilmiştir) göz önüne alındığında , talimat işaretçisinin nereden geldiğine bakılmaksızın oldukça güvenilir olduğunu görebiliriz ( belki de son doldurulmuş bayt hariç ), CPU geçerli bir iki baytlık x86 komutu yürütmeye devam edebilir CD CD, bu durumda yazılım kesmesi 205 (0xCD) oluşturmak için.
Garip, yine de, CD CC CD CC% 100 yorumlanabilir - ya INT 3da ya - verilmesi , INT 204sekans CC CD CC CDdaha az güvenilirdir, gösterildiği gibi sadece% 75, ancak int boyutlu bir bellek dolgu maddesi olarak tekrarlandığında genellikle% 99.99'dur.

Makro Birleştirici Referansı , 1987