]> git.pld-linux.org Git - packages/nasm.git/blob - nasm-disasm0x81.patch
- disasm0x81 patch - enable disassembling opcodes starting with 0x81
[packages/nasm.git] / nasm-disasm0x81.patch
1 diff -Nur nasm-0.98.08.orig/disasm.c nasm-0.98.08/disasm.c
2 --- nasm-0.98.08.orig/disasm.c  Mon Mar  5 13:05:23 2001
3 +++ nasm-0.98.08/disasm.c       Sat Jan 19 00:01:57 2002
4 @@ -377,13 +377,27 @@
5             ins->oprs[c-070].offset |= (((long) *data++) << 24);
6             ins->oprs[c-070].segment |= SEG_32BIT | SEG_RELATIVE;
7         }
8 -       if (c >= 0100 && c <= 0177) {
9 +       if (c >= 0100 && c <= 0127) {
10             int modrm = *data++;
11             ins->oprs[c & 07].basereg = (modrm >> 3) & 07;
12             ins->oprs[c & 07].segment |= SEG_RMREG;
13             data = do_ea (data, modrm, asize, segsize,
14                           &ins->oprs[(c >> 3) & 07]);
15         }
16 +       if (c >= 0130 && c <= 0132) {
17 +           ins->oprs[c-0130].offset = *data++;
18 +           ins->oprs[c-0130].offset |= (*data++ << 8);
19 +       }
20 +       if (c >= 0133 && c <= 0137)
21 +           continue;
22 +       if (c >= 0140 && c <= 0142) {
23 +           ins->oprs[c-0140].offset = *data++;
24 +           ins->oprs[c-0140].offset |= (*data++ << 8);
25 +           ins->oprs[c-0140].offset |= (((long) *data++) << 16);
26 +           ins->oprs[c-0140].offset |= (((long) *data++) << 24);
27 +       }
28 +       if (c >= 0143 && c <= 0147)
29 +           continue;
30         if (c >= 0200 && c <= 0277) {
31             int modrm = *data++;
32             if (((modrm >> 3) & 07) != (c & 07))
33 diff -Nur nasm-0.98.08.orig/insns.dat nasm-0.98.08/insns.dat
34 --- nasm-0.98.08.orig/insns.dat Mon Mar  5 13:06:10 2001
35 +++ nasm-0.98.08/insns.dat      Fri Jan 18 23:05:53 2002
36 @@ -40,11 +40,11 @@
37  ADC       reg_eax,sbyte       \321\1\x83\202\15                  386,ND
38  ADC       reg_eax,imm         \321\1\x15\41                 386,SM
39  ADC       rm8,imm             \300\1\x80\202\21             8086,SM
40 -ADC       rm16,imm            \320\300\134\1\x81\202\131         8086,SM,ND
41 -ADC       rm32,imm            \321\300\144\1\x81\202\141         386,SM,ND
42 +ADC       rm16,imm            \320\300\134\1\x81\202\131         8086,SM
43 +ADC       rm32,imm            \321\300\144\1\x81\202\141         386,SM
44  ADC       mem,imm8            \300\1\x80\202\21             8086,SM
45 -ADC       mem,imm16           \320\300\134\1\x81\202\131         8086,SM,ND
46 -ADC       mem,imm32           \321\300\144\1\x81\202\141         386,SM,ND
47 +ADC       mem,imm16           \320\300\134\1\x81\202\131         8086,SM
48 +ADC       mem,imm32           \321\300\144\1\x81\202\141         386,SM
49  ADD       mem,reg8            \300\17\101                   8086,SM
50  ADD       reg8,reg8           \300\17\101                   8086
51  ADD       mem,reg16           \320\300\1\x01\101            8086,SM
52 @@ -64,11 +64,11 @@
53  ADD       reg_eax,sbyte       \321\1\x83\200\15                  386,ND
54  ADD       reg_eax,imm         \321\1\x05\41                 386,SM
55  ADD       rm8,imm             \300\1\x80\200\21             8086,SM
56 -ADD       rm16,imm            \320\300\134\1\x81\200\131         8086,SM,ND
57 -ADD       rm32,imm            \321\300\144\1\x81\200\141         386,SM,ND
58 +ADD       rm16,imm            \320\300\134\1\x81\200\131         8086,SM
59 +ADD       rm32,imm            \321\300\144\1\x81\200\141         386,SM
60  ADD       mem,imm8            \300\1\x80\200\21             8086,SM
61 -ADD       mem,imm16           \320\300\134\1\x81\200\131         8086,SM,ND
62 -ADD       mem,imm32           \321\300\144\1\x81\200\141         386,SM,ND
63 +ADD       mem,imm16           \320\300\134\1\x81\200\131         8086,SM
64 +ADD       mem,imm32           \321\300\144\1\x81\200\141         386,SM
65  AND       mem,reg8            \300\1\x20\101                8086,SM
66  AND       reg8,reg8           \300\1\x20\101                8086
67  AND       mem,reg16           \320\300\1\x21\101            8086,SM
68 @@ -88,11 +88,11 @@
69  AND       reg_eax,sbyte       \321\1\x83\204\15                  386,ND
70  AND       reg_eax,imm         \321\1\x25\41                 386,SM
71  AND       rm8,imm             \300\1\x80\204\21             8086,SM
72 -AND       rm16,imm            \320\300\134\1\x81\204\131         8086,SM,ND
73 -AND       rm32,imm            \321\300\144\1\x81\204\141         386,SM,ND
74 +AND       rm16,imm            \320\300\134\1\x81\204\131         8086,SM
75 +AND       rm32,imm            \321\300\144\1\x81\204\141         386,SM
76  AND       mem,imm8            \300\1\x80\204\21             8086,SM
77 -AND       mem,imm16           \320\300\134\1\x81\204\131         8086,SM,ND
78 -AND       mem,imm32           \321\300\144\1\x81\204\141         386,SM,ND
79 +AND       mem,imm16           \320\300\134\1\x81\204\131         8086,SM
80 +AND       mem,imm32           \321\300\144\1\x81\204\141         386,SM
81  ARPL      mem,reg16           \300\1\x63\101                286,PROT,SM
82  ARPL      reg16,reg16         \300\1\x63\101                286,PROT
83  BOUND     reg16,mem           \320\301\1\x62\110            186
84 @@ -181,11 +181,11 @@
85  CMP       reg_eax,sbyte       \321\1\x83\207\15                  386,ND
86  CMP       reg_eax,imm         \321\1\x3D\41                 386,SM
87  CMP       rm8,imm             \300\1\x80\207\21             8086,SM
88 -CMP       rm16,imm            \320\300\134\1\x81\207\131         8086,SM,ND
89 -CMP       rm32,imm            \321\300\144\1\x81\207\141         386,SM,ND
90 +CMP       rm16,imm            \320\300\134\1\x81\207\131         8086,SM
91 +CMP       rm32,imm            \321\300\144\1\x81\207\141         386,SM
92  CMP       mem,imm8            \300\1\x80\207\21             8086,SM
93 -CMP       mem,imm16           \320\300\134\1\x81\207\131         8086,SM,ND
94 -CMP       mem,imm32           \321\300\144\1\x81\207\141         386,SM,ND
95 +CMP       mem,imm16           \320\300\134\1\x81\207\131         8086,SM
96 +CMP       mem,imm32           \321\300\144\1\x81\207\141         386,SM
97  CMPSB     void                \332\1\xA6                    8086
98  CMPSD     void                \332\321\1\xA7                386
99  CMPSW     void                \332\320\1\xA7                8086
100 @@ -640,11 +640,11 @@
101  OR        reg_eax,sbyte       \321\1\x83\201\15                  386,ND
102  OR        reg_eax,imm         \321\1\x0D\41                 386,SM
103  OR        rm8,imm             \300\1\x80\201\21             8086,SM
104 -OR        rm16,imm            \320\300\134\1\x81\201\131         8086,SM,ND
105 -OR        rm32,imm            \321\300\144\1\x81\201\141         386,SM,ND
106 +OR        rm16,imm            \320\300\134\1\x81\201\131         8086,SM
107 +OR        rm32,imm            \321\300\144\1\x81\201\141         386,SM
108  OR        mem,imm8            \300\1\x80\201\21             8086,SM
109 -OR        mem,imm16           \320\300\134\1\x81\201\131         8086,SM,ND
110 -OR        mem,imm32           \321\300\144\1\x81\201\141         386,SM,ND
111 +OR        mem,imm16           \320\300\134\1\x81\201\131         8086,SM
112 +OR        mem,imm32           \321\300\144\1\x81\201\141         386,SM
113  OUT       imm,reg_al          \1\xE6\24                     8086,SB
114  OUT       imm,reg_ax          \320\1\xE7\24                 8086,SB
115  OUT       imm,reg_eax         \321\1\xE7\24                 386,SB
116 @@ -931,11 +931,11 @@
117  SBB       reg_eax,sbyte       \321\1\x83\203\15                  386,ND
118  SBB       reg_eax,imm         \321\1\x1D\41                 386,SM
119  SBB       rm8,imm             \300\1\x80\203\21             8086,SM
120 -SBB       rm16,imm            \320\300\134\1\x81\203\131         8086,SM,ND
121 -SBB       rm32,imm            \321\300\144\1\x81\203\141         386,SM,ND
122 +SBB       rm16,imm            \320\300\134\1\x81\203\131         8086,SM
123 +SBB       rm32,imm            \321\300\144\1\x81\203\141         386,SM
124  SBB       mem,imm8            \300\1\x80\203\21             8086,SM
125 -SBB       mem,imm16           \320\300\134\1\x81\203\131         8086,SM,ND
126 -SBB       mem,imm32           \321\300\144\1\x81\203\141         386,SM,ND
127 +SBB       mem,imm16           \320\300\134\1\x81\203\131         8086,SM
128 +SBB       mem,imm32           \321\300\144\1\x81\203\141         386,SM
129  SCASB     void                \332\1\xAE                    8086
130  SCASD     void                \332\321\1\xAF                386
131  SCASW     void                \332\320\1\xAF                8086
132 @@ -1013,11 +1013,11 @@
133  SUB       reg_eax,sbyte       \321\1\x83\205\15                  386,ND
134  SUB       reg_eax,imm         \321\1\x2D\41                 386,SM
135  SUB       rm8,imm             \300\1\x80\205\21             8086,SM
136 -SUB       rm16,imm            \320\300\134\1\x81\205\131         8086,SM,ND
137 -SUB       rm32,imm            \321\300\144\1\x81\205\141         386,SM,ND
138 +SUB       rm16,imm            \320\300\134\1\x81\205\131         8086,SM
139 +SUB       rm32,imm            \321\300\144\1\x81\205\141         386,SM
140  SUB       mem,imm8            \300\1\x80\205\21             8086,SM
141 -SUB       mem,imm16           \320\300\134\1\x81\205\131         8086,SM,ND
142 -SUB       mem,imm32           \321\300\144\1\x81\205\141         386,SM,ND
143 +SUB       mem,imm16           \320\300\134\1\x81\205\131         8086,SM
144 +SUB       mem,imm32           \321\300\144\1\x81\205\141         386,SM
145  SVDC     mem80,reg_sreg      \300\2\x0F\x78\101            486,CYRIX,SMM
146  SVLDT     mem80               \300\2\x0F\x7A\200            486,CYRIX,SMM
147  SVTS      mem80               \300\2\x0F\x7C\200            486,CYRIX,SMM
148 @@ -1115,11 +1115,11 @@
149  XOR       reg_eax,sbyte       \321\1\x83\206\15                  386,ND
150  XOR       reg_eax,imm         \321\1\x35\41                 386,SM
151  XOR       rm8,imm             \300\1\x80\206\21             8086,SM
152 -XOR       rm16,imm            \320\300\134\1\x81\206\131         8086,SM,ND
153 -XOR       rm32,imm            \321\300\144\1\x81\206\141         386,SM,ND
154 +XOR       rm16,imm            \320\300\134\1\x81\206\131         8086,SM
155 +XOR       rm32,imm            \321\300\144\1\x81\206\141         386,SM
156  XOR       mem,imm8            \300\1\x80\206\21             8086,SM
157 -XOR       mem,imm16           \320\300\134\1\x81\206\131         8086,SM,ND
158 -XOR       mem,imm32           \321\300\144\1\x81\206\141         386,SM,ND
159 +XOR       mem,imm16           \320\300\134\1\x81\206\131         8086,SM
160 +XOR       mem,imm32           \321\300\144\1\x81\206\141         386,SM
161  CMOVcc    reg16,mem           \320\301\1\x0F\330\x40\110    P6,SM
162  CMOVcc    reg16,reg16         \320\301\1\x0F\330\x40\110    P6
163  CMOVcc    reg32,mem           \321\301\1\x0F\330\x40\110    P6,SM
This page took 0.129472 seconds and 4 git commands to generate.