Prüfregister - Test register

Ein Testregister im Intel 80386- und Intel 80486- Prozessor war ein Register, das vom Prozessor verwendet wurde, um normalerweise einen Selbsttest durchzuführen. Die meisten dieser Register waren undokumentiert und wurden von spezialisierter Software verwendet. Die Testregister wurden TR3 bis TR7 genannt . Reguläre Programme benötigen diese Register normalerweise nicht, um zu funktionieren. Beim Pentium wurden die Testregister durch eine Vielzahl von modellspezifischen Registern (MSRs) ersetzt.

Zum Testen wurden zwei Testregister TR6 und TR7 bereitgestellt. TR6 war das Testbefehlsregister und TR7 war das Testdatenregister. Auf diese Register wurde durch Varianten des MOV- Befehls zugegriffen . Ein Testregister kann entweder der Quelloperand oder der Zieloperand sein. Die MOV-Befehle sind sowohl im Real-Adress-Modus als auch im geschützten Modus definiert . Die Testregister sind privilegierte Ressourcen. Im geschützten Modus können die MOV-Befehle, die darauf zugreifen, nur auf Privilegebene 0 ausgeführt werden . Ein Versuch, die Testregister zu lesen oder zu schreiben, während auf einer anderen Privilegebene ausgeführt wird, führt zu einer allgemeinen Schutzausnahme. Außerdem generieren diese Anweisungen eine ungültige Opcode-Ausnahme auf jeder CPU, die neuer als 80486 ist.

Die Anweisung wird je nach Datenfluss auf zwei Arten codiert. Das Verschieben von Daten von einem Universalregister in ein Testregister wird als 0F 26 /r(wobei r/mes sich um das GPR und regum das Testregister handelt) codiert . Das Verschieben von Daten in die andere Richtung (dh vom Testregister in ein Allzweckregister) wird als 0F 24 /r( r/mals GPR und regals Testregister) codiert . Es sind nur Register-Register-Bewegungen zulässig; Speicherformen des ModR/M-Bytes sind undefiniert. Mit anderen Worten, das modFeld (die beiden MSBs ) muss auf gesetzt werden 1.

Siehe auch

Verweise