Line | |
---|
1 | .sect .text; .sect .rom; .sect .data; .sect .bss
|
---|
2 | .extern .mul_ext
|
---|
3 | .sect .text
|
---|
4 | .mul_ext:
|
---|
5 | push ebp
|
---|
6 | mov ebp,esp
|
---|
7 | sub esp,60
|
---|
8 | push esi
|
---|
9 | push edi
|
---|
10 | mov esi,8(ebp)
|
---|
11 | mov edx,12(ebp)
|
---|
12 | movsx eax,(edx)
|
---|
13 | movsx ebx,(esi)
|
---|
14 | xor ebx,eax
|
---|
15 | o16 mov (esi),ebx
|
---|
16 | mov edx,12(ebp)
|
---|
17 | ! kill edx
|
---|
18 | movsx eax,2(edx)
|
---|
19 | inc eax
|
---|
20 | movsx ecx,2(esi)
|
---|
21 | add ecx,eax
|
---|
22 | mov eax,ecx
|
---|
23 | movsx eax,eax
|
---|
24 | o16 mov 2(esi),eax
|
---|
25 | mov edx,4(esi)
|
---|
26 | shr edx,16
|
---|
27 | and edx,65535
|
---|
28 | o16 mov -16(ebp),edx
|
---|
29 | mov edx,65535
|
---|
30 | and edx,4(esi)
|
---|
31 | o16 mov -14(ebp),edx
|
---|
32 | mov edx,8(esi)
|
---|
33 | shr edx,16
|
---|
34 | and edx,65535
|
---|
35 | o16 mov -12(ebp),edx
|
---|
36 | mov edx,65535
|
---|
37 | and edx,8(esi)
|
---|
38 | o16 mov -10(ebp),edx
|
---|
39 | mov edx,12(ebp)
|
---|
40 | mov edx,4(edx)
|
---|
41 | shr edx,16
|
---|
42 | and edx,65535
|
---|
43 | o16 mov -24(ebp),edx
|
---|
44 | mov edx,12(ebp)
|
---|
45 | mov ecx,65535
|
---|
46 | and ecx,4(edx)
|
---|
47 | o16 mov -22(ebp),ecx
|
---|
48 | mov edx,8(edx)
|
---|
49 | shr edx,16
|
---|
50 | and edx,65535
|
---|
51 | o16 mov -20(ebp),edx
|
---|
52 | mov edx,12(ebp)
|
---|
53 | mov ecx,65535
|
---|
54 | and ecx,8(edx)
|
---|
55 | o16 mov -18(ebp),ecx
|
---|
56 | mov edi,8
|
---|
57 | I1_6:
|
---|
58 | mov edx,edi
|
---|
59 | dec edx
|
---|
60 | push edi
|
---|
61 | mov edi,edx
|
---|
62 | pop edx
|
---|
63 | test edx,edx
|
---|
64 | je I1_3
|
---|
65 | o16 mov -40(ebp)(edi*2),0
|
---|
66 | jmp I1_6
|
---|
67 | I1_3:
|
---|
68 | mov edi,4
|
---|
69 | lea edx,-32(ebp)
|
---|
70 | mov -44(ebp),edx
|
---|
71 | I1_10:
|
---|
72 | mov edx,edi
|
---|
73 | dec edx
|
---|
74 | push edi
|
---|
75 | mov edi,edx
|
---|
76 | pop edx
|
---|
77 | test edx,edx
|
---|
78 | je I1_7
|
---|
79 | movzx edx,-16(ebp)(edi*2)
|
---|
80 | test edx,edx
|
---|
81 | je I1_8
|
---|
82 | o16 mov -46(ebp),0
|
---|
83 | movzx edx,-16(ebp)(edi*2)
|
---|
84 | mov -52(ebp),edx
|
---|
85 | mov -8(ebp),4
|
---|
86 | I1_17:
|
---|
87 | mov edx,-8(ebp)
|
---|
88 | mov ecx,edx
|
---|
89 | dec ecx
|
---|
90 | mov -8(ebp),ecx
|
---|
91 | test edx,edx
|
---|
92 | je I1_14
|
---|
93 | mov edx,-44(ebp)
|
---|
94 | movzx ebx,-46(ebp)
|
---|
95 | movzx eax,0(edx)(ecx*2)
|
---|
96 | add ebx,eax
|
---|
97 | mov -56(ebp),ebx
|
---|
98 | movzx edx,-24(ebp)(ecx*2)
|
---|
99 | test edx,edx
|
---|
100 | je I1_19
|
---|
101 | movzx edx,-24(ebp)(ecx*2)
|
---|
102 | imul edx,-52(ebp)
|
---|
103 | add -56(ebp),edx
|
---|
104 | I1_19:
|
---|
105 | mov edx,65535
|
---|
106 | and edx,-56(ebp)
|
---|
107 | mov ecx,-8(ebp)
|
---|
108 | mov ebx,-44(ebp)
|
---|
109 | o16 mov 0(ebx)(ecx*2),edx
|
---|
110 | mov edx,-56(ebp)
|
---|
111 | shr edx,16
|
---|
112 | and edx,65535
|
---|
113 | o16 mov -46(ebp),edx
|
---|
114 | jmp I1_17
|
---|
115 | I1_14:
|
---|
116 | mov edx,-44(ebp)
|
---|
117 | ! kill edx
|
---|
118 | o16 mov cx,-46(ebp)
|
---|
119 | o16 mov -2(edx),cx
|
---|
120 | I1_8:
|
---|
121 | add -44(ebp),-2
|
---|
122 | jmp I1_10
|
---|
123 | I1_7:
|
---|
124 | movzx edx,-40(ebp)
|
---|
125 | test edx,32768
|
---|
126 | jne I1_22
|
---|
127 | movsx eax,2(esi)
|
---|
128 | dec eax
|
---|
129 | movsx eax,eax
|
---|
130 | o16 mov 2(esi),eax
|
---|
131 | xor edi,edi
|
---|
132 | I1_27:
|
---|
133 | cmp edi,3
|
---|
134 | jg I1_24
|
---|
135 | lea edx,-40(ebp)(edi*2)
|
---|
136 | mov -60(ebp),edx
|
---|
137 | movzx ecx,(edx)
|
---|
138 | sal ecx,1
|
---|
139 | and ecx,65535
|
---|
140 | o16 mov (edx),ecx
|
---|
141 | mov edx,edi
|
---|
142 | inc edx
|
---|
143 | movzx ecx,-40(ebp)(edx*2)
|
---|
144 | test ecx,32768
|
---|
145 | je I1_25
|
---|
146 | lea edx,-40(ebp)(edi*2)
|
---|
147 | mov -60(ebp),edx
|
---|
148 | movzx ecx,(edx)
|
---|
149 | or ecx,1
|
---|
150 | and ecx,65535
|
---|
151 | o16 mov (edx),ecx
|
---|
152 | I1_25:
|
---|
153 | inc edi
|
---|
154 | jmp I1_27
|
---|
155 | I1_24:
|
---|
156 | movzx edx,-32(ebp)
|
---|
157 | sal edx,1
|
---|
158 | and edx,65535
|
---|
159 | o16 mov -32(ebp),edx
|
---|
160 | I1_22:
|
---|
161 | movzx edx,-40(ebp)
|
---|
162 | sal edx,16
|
---|
163 | movzx ecx,-38(ebp)
|
---|
164 | add ecx,edx
|
---|
165 | mov 4(esi),ecx
|
---|
166 | movzx edx,-36(ebp)
|
---|
167 | sal edx,16
|
---|
168 | movzx ecx,-34(ebp)
|
---|
169 | add ecx,edx
|
---|
170 | mov 8(esi),ecx
|
---|
171 | movzx edx,-32(ebp)
|
---|
172 | test edx,32768
|
---|
173 | je I1_32
|
---|
174 | add 8(esi),1
|
---|
175 | jne I1_32
|
---|
176 | add 4(esi),1
|
---|
177 | jne I1_32
|
---|
178 | mov 4(esi),-2147483648
|
---|
179 | movsx eax,2(esi)
|
---|
180 | inc eax
|
---|
181 | movsx eax,eax
|
---|
182 | o16 mov 2(esi),eax
|
---|
183 | I1_32:
|
---|
184 | movsx eax,2(esi)
|
---|
185 | cmp eax,16383
|
---|
186 | jl I1_41
|
---|
187 | push 4
|
---|
188 | call __fptrp
|
---|
189 | pop ecx
|
---|
190 | o16 mov 2(esi),16383
|
---|
191 | I1_43:
|
---|
192 | xor edx,edx
|
---|
193 | mov 8(esi),edx
|
---|
194 | mov 4(esi),edx
|
---|
195 | jmp I1_1
|
---|
196 | I1_41:
|
---|
197 | movsx eax,2(esi)
|
---|
198 | cmp eax,-16382
|
---|
199 | jge I1_1
|
---|
200 | push 5
|
---|
201 | call __fptrp
|
---|
202 | pop ecx
|
---|
203 | o16 mov 2(esi),-16382
|
---|
204 | jmp I1_43
|
---|
205 | I1_1:
|
---|
206 | pop edi
|
---|
207 | pop esi
|
---|
208 | leave
|
---|
209 | ret
|
---|
Note:
See
TracBrowser
for help on using the repository browser.