Some more 0x0f prefixed instructions related to protected mode.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1040
This commit is contained in:
parent
f6e003c808
commit
40a4d72267
1 changed files with 27 additions and 1 deletions
|
@ -97,12 +97,38 @@ switch(Fetchb()) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case 0x20: /* MOV Rd.CRx */
|
||||
{
|
||||
GetRM;
|
||||
Bitu which=(rm >> 3) & 7;
|
||||
if (rm >= 0xc0 ) {
|
||||
GetEArd;
|
||||
*eard=CPU_GET_CRX(which);
|
||||
} else {
|
||||
GetEAa;
|
||||
LOG(LOG_CPU,LOG_ERROR)("MOV XXX,CR%d with non-register",which);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0x22: /* MOV CRx,Rd */
|
||||
{
|
||||
GetRM;
|
||||
Bitu which=(rm >> 3) & 7;
|
||||
if (rm >= 0xc0 ) {
|
||||
GetEArd;
|
||||
if (!CPU_SET_CRX(which,*eard)) goto decode_end;
|
||||
} else {
|
||||
GetEAa;
|
||||
LOG(LOG_CPU,LOG_ERROR)("MOV CR%,XXX with non-register",which);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0x23: /* MOV DRx,Rd */
|
||||
{
|
||||
GetRM;
|
||||
Bitu which=(rm >> 3) & 7;
|
||||
if (rm >= 0xc0 ) {
|
||||
GetEArw;
|
||||
GetEArd;
|
||||
} else {
|
||||
GetEAa;
|
||||
LOG(LOG_CPU,LOG_ERROR)("MOV DR%,XXX with non-register",which);
|
||||
|
|
Loading…
Add table
Reference in a new issue