Opcode: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Reijndert (overleg | bijdragen)
Labels: Bewerking via mobiel Bewerking via mobiele website
 
Regel 18:
 
==Ongedocumenteerde opcodes==
De fabrikant van een computer of processor geeft documentatie uit waarin de opcodes beschreven worden, zodat het mogelijk is software te ontwikkelen. Nu zullen er haast altijd bitcombinaties zijn die niet beschreven zijn. Meestal zwijgt de fabrikant hierover, of hij beschrijft ongedocumenteerde opcodes met woorden als 'gereserveerd' of 'onvoorspelbaar gedrag'. Ook is het mogelijk dat een ongedocumenteerde opcode een gedocumenteerde [[interrupt]] veroorzaakt.
 
Natuurlijk zullen er altijd mensen zijn die deze ongedocumenteerde opcodes uitproberen. Soms blijkt dat ze hetzelfde doen als een andere, wel gedocumenteerde opcode. Meestal komt dat doordat de elektronica van de processor zo eenvoudig mogelijk is gehouden. Het komt ook weleens voor dat een ongedocumenteerde instructieopcode een zeer nuttige bewerking uitvoert, maar dat de fabrikant heeft besloten deze mogelijkheid niet te publiceren.
 
Sommige softwareontwikkelaars gebruiken de ongedocumenteerde instructiesopcodes om het [[disassembleren]] te bemoeilijken of om te kunnen aantonen dat een programma met hun pakket ontwikkeld is.
 
Het is enigszins riskant een ongedocumenteerde instructieopcode te gebruiken, want de fabrikant van de processor garandeert niet dat een volgende versie van de processor die instructieopcode ook kan uitvoeren. Aan de andere kant zal de fabrikant ernaar streven de ongedocumenteerde instructiesopcodes ook in de nieuwe versie in te bouwen, want hij weet dat hij de schuld krijgt als een programma op de nieuwe processor ineens niet meer werkt.
 
Een beroemde ongedocumenteerde instructie is [[LOADALL]]. Deze instructie is te vinden in de [[80286]] en de [[80386]] - niet in latere processors. De opcodes zijn niet gelijk: op de 80286 is het 0F05 en op de 80386 0F07, en het gedrag is ook niet gelijk. Het was vrijwel onmogelijk deze gecompliceerde instructie te ontdekken door het gedrag van de processor te onderzoeken, en hij is dan ook bekend geworden doordat een document van [[Intel]] is uitgelekt. De instructie was bedoeld om de processor te kunnen testen, maar hij bleek zeer bruikbaar om het volledige geheugen te adresseren terwijl de processor in [[real mode]] stond. De instructie werd dan ook in veel commerciële software toegepast.