Odnośnie 0xCC
a 0xCD
w szczególności są to relikty z Intel 8088 / 8086 zestawu instrukcji procesor z powrotem w 1980 roku. 0xCC
Jest to specjalny przypadek oprogramowanie przerwania opcode . Specjalna wersja jednobajtowa pozwala programowi wygenerować przerwanie 3 .INT
0xCD
0xCC
Chociaż numery przerwań oprogramowania są w zasadzie arbitralne, INT 3
tradycyjnie używano ich do funkcji debuggera lub funkcji punktu przerwania , która jest konwencją, która obowiązuje do dziś. Za każdym razem, gdy uruchamiany jest debugger, instaluje on moduł obsługi przerwań INT 3
, który uruchamia debugger po uruchomieniu tego kodu operacyjnego. Zazwyczaj wstrzymuje aktualnie uruchomione programowanie i wyświetla interaktywny monit.
Zwykle INT
kod operacji x86 ma dwa bajty: 0xCD
po którym następuje pożądany numer przerwania od 0-255. Teraz chociaż można wydać 0xCD 0x03
na INT 3
Intel postanowił dodać specjalną version-- 0xCC
bez dodatkowego bajtu - ponieważ kod operacji musi być tylko jeden bajt, aby funkcjonować jako wiarygodnego wypełnienia bajt „” dla nieużywanej pamięci.
Chodzi o to, aby pozwolić na płynne odzyskiwanie, jeśli procesor omyłkowo wskoczy do pamięci, która nie zawiera żadnych zamierzonych instrukcji . Instrukcje wielobajtowe nie nadają się do tego celu, ponieważ błędny skok może wylądować przy dowolnym możliwym przesunięciu bajtu, gdzie musiałby kontynuować z prawidłowo utworzonym strumieniem instrukcji.
Oczywiście jednobajtowe kody operacyjne działają w tym przypadku w sposób trywialny, ale mogą istnieć również dziwaczne wyjątki: na przykład biorąc pod uwagę sekwencję wypełniania 0xCDCDCDCD
(również wspomnianą na tej stronie), widzimy, że jest dość niezawodny, ponieważ bez względu na to, gdzie wyląduje wskaźnik instrukcji ( z wyjątkiem być może ostatniego wypełnionego bajtu), procesor może wznowić wykonywanie ważnej dwubajtowej instrukcji x86 CD CD
, w tym przypadku w celu wygenerowania przerwania programowego 205 (0xCD).
Dziwniejsze nieruchomo, podczas gdy CD CC CD CC
100% interpretacji - daje zarówno INT 3
lub INT 204
--the sekwencja CC CD CC CD
jest mniej pewny, tylko 75%, jak pokazano, ale na ogół 99,99%, gdy powtarza się wypełniacz pamięci int wielkości.
Macro Assembler Reference , 1987