Top Qs
Tijdlijn
Chat
Perspectief
LOADALL
Van Wikipedia, de vrije encyclopedie
Remove ads
LOADALL is een ongedocumenteerde instructie van sommige microprocessors van Intel.
LOADALL kan met één instructie alle registers van de processor laden. Interessant is dat ook de segmentdescriptors worden geladen, onafhankelijk van de segmentregisters, waardoor het onder andere mogelijk is in real mode het hele geheugen van de 80286 te benaderen.
De instructie komt voor op de 80286 en de 80386, maar de werking is op die twee processors geheel anders.
Remove ads
80286
Samenvatten
Perspectief
De machinecode op de 80286 is 0F05. De instructie laadt gegevens van adres 00800-00866, ongeacht de inhoud van de segmentregisters. Nu worden die adressen meestal door het besturingssysteem voor andere doelen gebruikt. Men moet dus de inhoud van die adressen elders redden en de gewenste gegevens op die adressen zetten voordat men LOADALL uitvoert. Hierdoor is LOADALL een vrij trage bewerking.
Hoewel het MSW wordt geladen, is het met LOADALL niet mogelijk terug te keren van protected mode naar real mode.
Remove ads
80386
Samenvatten
Perspectief
De machinecode op de 80386 is 0F07. De instructie laadt gegevens van het adres dat wordt aangewezen door ES:EDI. Hierbij wordt inderdaad ES gebruikt en niet de descriptor van ES.
Remove ads
Andere processors
Voor zover bekend is de instructie LOADALL alleen beschikbaar op de 80286 en 80386. Het is echter mogelijk dat andere processors een soortgelijke instructie uitvoeren als men maar weet wat de opcode is en welke waarde de registers moeten hebben.
Het probleem is namelijk dat lang niet alle eigenschappen van de processors gedocumenteerd zijn. Ook domweg alle mogelijkheden proberen is niet haalbaar - daarvoor zijn het er te veel. Sommige opcodes gedragen zich als ongeldige instructie tenzij de registers een speciale - door de fabrikant geheimgehouden - waarde bevatten.
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads