diff options
Diffstat (limited to 'code/tools/lcc/x86/win32/tst/init.sbk')
-rw-r--r-- | code/tools/lcc/x86/win32/tst/init.sbk | 336 |
1 files changed, 336 insertions, 0 deletions
diff --git a/code/tools/lcc/x86/win32/tst/init.sbk b/code/tools/lcc/x86/win32/tst/init.sbk new file mode 100644 index 0000000..2c1cc67 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/init.sbk @@ -0,0 +1,336 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +public _words +align 4 +_words label byte +dd 1 +dd 2 +dd 3 +db 105 +db 102 +db 0 +db 3 dup (0) +db 2 dup (0) +dd 4 +dd 5 +db 4 dup (0) +db 102 +db 111 +db 114 +db 3 dup (0) +db 2 dup (0) +dd 6 +dd 7 +dd 8 +db 101 +db 108 +db 115 +db 101 +db 0 +db 1 dup (0) +db 2 dup (0) +dd 9 +dd 10 +dd 11 +db 119 +db 104 +db 105 +db 108 +db 101 +db 1 dup (0) +db 2 dup (0) +dd 0 +db 8 dup (0) +db 8 dup (0) +public _wordlist +align 4 +_wordlist label byte +dd _words +public _x +align 4 +_x label byte +dd 1 +dd 2 +dd 3 +dd 4 +dd 0 +dd 5 +dd 6 +db 12 dup (0) +dd 7 +db 16 dup (0) +public _y +align 4 +_y label byte +dd _x +dd _x+20 +dd _x+40 +dd 00H +public _main +_DATA ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov dword ptr (-8)[ebp],0 +jmp L8 +L5: +mov dword ptr (-4)[ebp],0 +jmp L12 +L9: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov esi,dword ptr (_y)[esi*4] +mov edi,dword ptr [esi][edi*4] +push edi +lea edi,(L13) +push edi +call _printf +add esp,8 +L10: +inc dword ptr (-4)[ebp] +L12: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov esi,dword ptr (_y)[esi*4] +cmp dword ptr [esi][edi*4],0 +jne L9 +lea edi,(L14) +push edi +call _printf +add esp,4 +L6: +inc dword ptr (-8)[ebp] +L8: +mov edi,dword ptr (-8)[ebp] +mov edi,dword ptr (_y)[edi*4] +cmp edi,0 +jne L5 +call _f +add esp,0 +mov edi,dword ptr (_wordlist) +push edi +call _g +add esp,4 +mov eax,0 +L4: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L16 label byte +dd L17 +dd L18 +dd L19 +dd L20 +dd 00H +public _f +_DATA ends +_TEXT segment +_f: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +lea edi,(L16) +mov dword ptr (-4)[ebp],edi +jmp L24 +L21: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr [edi] +push edi +lea edi,(L25) +push edi +call _printf +add esp,8 +L22: +mov edi,dword ptr (-4)[ebp] +lea edi,(4)[edi] +mov dword ptr (-4)[ebp],edi +L24: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr [edi] +cmp edi,0 +jne L21 +mov eax,0 +L15: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _g +_g: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +jmp L30 +L27: +mov dword ptr (-4)[ebp],0 +jmp L34 +L31: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (20)[ebp] +mov edi,dword ptr [esi][edi*4] +push edi +lea edi,(L35) +push edi +call _printf +add esp,8 +L32: +inc dword ptr (-4)[ebp] +L34: +mov edi,dword ptr (-4)[ebp] +cmp edi,3 +jb L31 +mov edi,dword ptr (20)[ebp] +lea edi,(12)[edi] +push edi +lea edi,(L25) +push edi +call _printf +add esp,8 +L28: +mov edi,dword ptr (20)[ebp] +lea edi,(20)[edi] +mov dword ptr (20)[ebp],edi +L30: +mov edi,dword ptr (20)[ebp] +cmp dword ptr [edi],0 +jne L27 +call _h +add esp,0 +mov eax,0 +L26: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _h +_h: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],0 +jmp L40 +L37: +imul edi,dword ptr (-4)[ebp],20 +lea esi,(_words+12)[edi] +push esi +mov esi,dword ptr (_words+8)[edi] +push esi +mov esi,dword ptr (_words+4)[edi] +push esi +mov edi,dword ptr (_words)[edi] +push edi +lea edi,(L41) +push edi +call _printf +add esp,20 +L38: +inc dword ptr (-4)[ebp] +L40: +mov edi,dword ptr (-4)[ebp] +cmp edi,5 +jb L37 +mov eax,0 +L36: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L41 label byte +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 115 +db 10 +db 0 +align 1 +L35 label byte +db 37 +db 100 +db 32 +db 0 +align 1 +L25 label byte +db 37 +db 115 +db 10 +db 0 +align 1 +L20 label byte +db 119 +db 104 +db 105 +db 108 +db 101 +db 0 +align 1 +L19 label byte +db 101 +db 108 +db 115 +db 101 +db 0 +align 1 +L18 label byte +db 102 +db 111 +db 114 +db 0 +align 1 +L17 label byte +db 105 +db 102 +db 0 +align 1 +L14 label byte +db 10 +db 0 +align 1 +L13 label byte +db 32 +db 37 +db 100 +db 0 +_TEXT ends +end |