İle ilgili olarak 0xCC
ve 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
0xCD
0xCC
Yazılım kesme sayıları, prensip olarak, keyfi olarak, hata ayıklayıcı kesme veya kesme noktası işlevi INT 3
iç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 INT
opcode'u iki bayttır: 0xCD
arkasından 0-255 arasında istenen kesme numarası gelir. Şimdi sorunu her ne kadar 0xCD 0x03
için INT 3
Intel version-- özel eklemeye karar, 0xCC
bir 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 3
da ya - verilmesi , INT 204
sekans CC CD CC CD
daha 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