続 IA-32 PE 逆アセンブラ
diswin のパッチはこんな感じ。
diff -uNr src.orig/dis.c src/dis.c --- src.orig/dis.c 2002-10-30 20:42:54.000000000 +0900 +++ src/dis.c 2004-02-20 18:51:16.000000000 +0900 @@ -1504,11 +1504,11 @@ case 0x24: /* MOV rd,tr */ op++; mne("mov"); - op1(eregname[reg]); + op1(eregname[rm]); switch(opc) { - case 0x20: PR2(op2p,"cr%d",rm);break; - case 0x21: PR2(op2p,"dr%d",rm);break; - case 0x24: PR2(op2p,"tr%d",rm);break; + case 0x20: PR2(op2p,"cr%d",reg);break; + case 0x21: PR2(op2p,"dr%d",reg);break; + case 0x24: PR2(op2p,"tr%d",reg);break; } break; case 0x22: /* MOV cr,rd */ @@ -1517,11 +1517,11 @@ op++; mne("mov"); switch(opc) { - case 0x22: PR1(op1p,"cr%d",rm);break; - case 0x23: PR1(op1p,"dr%d",rm);break; - case 0x26: PR1(op1p,"tr%d",rm);break; + case 0x22: PR1(op1p,"cr%d",reg);break; + case 0x23: PR1(op1p,"dr%d",reg);break; + case 0x26: PR1(op1p,"tr%d",reg);break; } - op2(eregname[reg]); + op2(eregname[rm]); break;