続 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;