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