Ticket #52: div64_32.lst

File div64_32.lst, 5.4 KB (added by Brendan Oakley, 16 years ago)

disassembly of div64_32 in OW1.6

Line 
10000                          divl_:
20000    56                        push        esi
30001    57                        push        edi
40002    55                        push        ebp
50003    89 D5                     mov         ebp,edx
60005    89 DF                     mov         edi,ebx
70007    89 CE                     mov         esi,ecx
80009    BB 20 00 00 00            mov         ebx,0x00000020
9000E    31 D2                     xor         edx,edx
100010    31 C9                     xor         ecx,ecx
110012    E8 00 00 00 00            call        __U8LS
120017    89 C1                     mov         ecx,eax
130019    09 E9                     or          ecx,ebp
14001B    85 D2                     test        edx,edx
15001D    75 04                     jne         L$1
16001F    85 C9                     test        ecx,ecx
170021    74 16                     je          L$2
180023                          L$1:
190023    89 C8                     mov         eax,ecx
200025    31 D2                     xor         edx,edx
210027    F7 F7                     div         edi
220029    31 D2                     xor         edx,edx
23002B    89 06                     mov         dword ptr [esi],eax
24002D    89 C8                     mov         eax,ecx
25002F    F7 F7                     div         edi
260031    8B 44 24 10               mov         eax,dword ptr 0x10[esp]
270035    89 10                     mov         dword ptr [eax],edx
280037    EB 10                     jmp         L$3
290039                          L$2:
300039    8B 44 24 10               mov         eax,dword ptr 0x10[esp]
31003D    C7 00 00 00 00 00         mov         dword ptr [eax],0x00000000
320043    C7 06 00 00 00 00         mov         dword ptr [esi],0x00000000
330049                          L$3:
340049    5D                        pop         ebp
35004A    5F                        pop         edi
36004B    5E                        pop         esi
37004C    C2 04 00                  ret         0x0004
38004F                          div64_32_:
39004F    51                        push        ecx
400050    56                        push        esi
410051    57                        push        edi
420052    55                        push        ebp
430053    83 EC 0C                  sub         esp,0x0000000c
440056    89 C6                     mov         esi,eax
450058    89 D7                     mov         edi,edx
46005A    89 DD                     mov         ebp,ebx
47005C    8B 00                     mov         eax,dword ptr [eax]
48005E    BB 20 00 00 00            mov         ebx,0x00000020
490063    89 44 24 04               mov         dword ptr 0x4[esp],eax
500067    31 C9                     xor         ecx,ecx
510069    8B 06                     mov         eax,dword ptr [esi]
52006B    8B 56 04                  mov         edx,dword ptr 0x4[esi]
53006E    E8 00 00 00 00            call        __U8RS
540073    89 C1                     mov         ecx,eax
550075    85 C0                     test        eax,eax
560077    74 44                     je          L$4
570079    31 D2                     xor         edx,edx
58007B    F7 F7                     div         edi
59007D    89 14 24                  mov         dword ptr [esp],edx
600080    89 C8                     mov         eax,ecx
610082    31 D2                     xor         edx,edx
620084    F7 F7                     div         edi
630086    55                        push        ebp
640087    89 FB                     mov         ebx,edi
650089    8D 4C 24 08               lea         ecx,0x8[esp]
66008D    8B 54 24 08               mov         edx,dword ptr 0x8[esp]
670091    89 44 24 0C               mov         dword ptr 0xc[esp],eax
680095    8B 44 24 04               mov         eax,dword ptr 0x4[esp]
690099    E8 00 00 00 00            call        divl_
70009E    8B 44 24 08               mov         eax,dword ptr 0x8[esp]
7100A2    BB 20 00 00 00            mov         ebx,0x00000020
7200A7    31 D2                     xor         edx,edx
7300A9    31 C9                     xor         ecx,ecx
7400AB    E8 00 00 00 00            call        __U8LS
7500B0    8B 4C 24 04               mov         ecx,dword ptr 0x4[esp]
7600B4    89 56 04                  mov         dword ptr 0x4[esi],edx
7700B7    09 C1                     or          ecx,eax
7800B9    89 0E                     mov         dword ptr [esi],ecx
7900BB    EB 18                     jmp         L$5
8000BD                          L$4:
8100BD    8B 44 24 04               mov         eax,dword ptr 0x4[esp]
8200C1    31 D2                     xor         edx,edx
8300C3    F7 F7                     div         edi
8400C5    89 4E 04                  mov         dword ptr 0x4[esi],ecx
8500C8    89 06                     mov         dword ptr [esi],eax
8600CA    31 D2                     xor         edx,edx
8700CC    8B 44 24 04               mov         eax,dword ptr 0x4[esp]
8800D0    F7 F7                     div         edi
8900D2    89 55 00                  mov         dword ptr [ebp],edx
9000D5                          L$5:
9100D5    83 C4 0C                  add         esp,0x0000000c
9200D8    5D                        pop         ebp
9300D9    5F                        pop         edi
9400DA    5E                        pop         esi
9500DB    59                        pop         ecx
9600DC    C3                        ret