aboutsummaryrefslogtreecommitdiffstats
path: root/lcc/x86/win32/tst/stdarg.sbk
diff options
context:
space:
mode:
Diffstat (limited to 'lcc/x86/win32/tst/stdarg.sbk')
-rwxr-xr-xlcc/x86/win32/tst/stdarg.sbk415
1 files changed, 415 insertions, 0 deletions
diff --git a/lcc/x86/win32/tst/stdarg.sbk b/lcc/x86/win32/tst/stdarg.sbk
new file mode 100755
index 0000000..35c2f66
--- /dev/null
+++ b/lcc/x86/win32/tst/stdarg.sbk
@@ -0,0 +1,415 @@
+.486
+.model flat
+extrn __fltused:near
+extrn __ftol:near
+_DATA segment
+public _x
+align 4
+_x label byte
+dd 1
+dd 2
+dd 3
+dd 4
+public _main
+_DATA ends
+_TEXT segment
+_main:
+push ebx
+push esi
+push edi
+push ebp
+mov ebp,esp
+sub esp,8
+lea edi,(L2)
+push edi
+call _print
+add esp,4
+lea edi,(L4)
+push edi
+lea edi,(L3)
+push edi
+call _print
+add esp,8
+push 10
+push 3
+lea edi,(L5)
+push edi
+call _print
+add esp,12
+push 10
+push 4
+lea edi,(L8)
+push edi
+lea edi,(L7)
+push edi
+lea edi,(L6)
+push edi
+call _print
+add esp,20
+push 10
+fld qword ptr (L10)
+sub esp,8
+fstp qword ptr [esp]
+lea edi,(L8)
+push edi
+lea edi,(L7)
+push edi
+lea edi,(L9)
+push edi
+call _print
+add esp,24
+lea edi,(_x)
+mov dword ptr (-8)[ebp],edi
+mov esi,edi
+mov dword ptr (-4)[ebp],esi
+sub esp,16
+mov edi,esp
+mov ecx,16
+rep movsb
+mov edi,dword ptr (-8)[ebp]
+mov esi,edi
+sub esp,16
+mov edi,esp
+mov ecx,16
+rep movsb
+mov edi,dword ptr (-8)[ebp]
+mov esi,edi
+sub esp,16
+mov edi,esp
+mov ecx,16
+rep movsb
+mov edi,dword ptr (-8)[ebp]
+mov esi,edi
+sub esp,16
+mov edi,esp
+mov ecx,16
+rep movsb
+mov edi,dword ptr (-8)[ebp]
+mov esi,edi
+sub esp,16
+mov edi,esp
+mov ecx,16
+rep movsb
+mov edi,dword ptr (-8)[ebp]
+mov esi,edi
+sub esp,16
+mov edi,esp
+mov ecx,16
+rep movsb
+lea edi,(L11)
+push edi
+call _print
+add esp,100
+mov eax,0
+L1:
+mov esp,ebp
+pop ebp
+pop edi
+pop esi
+pop ebx
+ret
+public _print
+_print:
+push ebx
+push esi
+push edi
+push ebp
+mov ebp,esp
+sub esp,28
+lea edi,(24)[ebp]
+mov dword ptr (-4)[ebp],edi
+jmp L17
+L14:
+mov edi,dword ptr (20)[ebp]
+movsx edi,byte ptr [edi]
+cmp edi,37
+jne L18
+mov edi,dword ptr (20)[ebp]
+lea edi,(1)[edi]
+mov dword ptr (20)[ebp],edi
+movsx edi,byte ptr [edi]
+mov dword ptr (-8)[ebp],edi
+mov edi,dword ptr (-8)[ebp]
+cmp edi,115
+je L34
+cmp edi,115
+jg L39
+L38:
+mov edi,dword ptr (-8)[ebp]
+cmp edi,98
+jl L20
+cmp edi,102
+jg L20
+jmp dword ptr (L40-392)[edi*4]
+_TEXT ends
+_TEXT segment
+align 4
+L40 label byte
+dd L23
+dd L28
+dd L30
+dd L20
+dd L36
+_TEXT ends
+_TEXT segment
+L39:
+cmp dword ptr (-8)[ebp],119
+je L32
+jmp L20
+L23:
+mov edi,dword ptr (-4)[ebp]
+lea edi,(16)[edi]
+mov dword ptr (-28)[ebp],edi
+mov dword ptr (-4)[ebp],edi
+lea edi,(-24)[ebp]
+mov esi,dword ptr (-28)[ebp]
+lea esi,(-16)[esi]
+mov ecx,16
+rep movsb
+mov edi,dword ptr (-12)[ebp]
+push edi
+mov edi,dword ptr (-16)[ebp]
+push edi
+mov edi,dword ptr (-20)[ebp]
+push edi
+mov edi,dword ptr (-24)[ebp]
+push edi
+lea edi,(L24)
+push edi
+call _printf
+add esp,20
+jmp L19
+L28:
+mov edi,dword ptr (-4)[ebp]
+lea edi,(4)[edi]
+mov dword ptr (-4)[ebp],edi
+movsx edi,byte ptr (-4)[edi]
+push edi
+lea edi,(L29)
+push edi
+call _printf
+add esp,8
+jmp L19
+L30:
+mov edi,dword ptr (-4)[ebp]
+lea edi,(4)[edi]
+mov dword ptr (-4)[ebp],edi
+mov edi,dword ptr (-4)[edi]
+push edi
+lea edi,(L31)
+push edi
+call _printf
+add esp,8
+jmp L19
+L32:
+mov edi,dword ptr (-4)[ebp]
+lea edi,(4)[edi]
+mov dword ptr (-4)[ebp],edi
+movsx edi,word ptr (-4)[edi]
+push edi
+lea edi,(L33)
+push edi
+call _printf
+add esp,8
+jmp L19
+L34:
+mov edi,dword ptr (-4)[ebp]
+lea edi,(4)[edi]
+mov dword ptr (-4)[ebp],edi
+mov edi,dword ptr (-4)[edi]
+push edi
+lea edi,(L35)
+push edi
+call _printf
+add esp,8
+jmp L19
+L36:
+mov edi,dword ptr (-4)[ebp]
+lea edi,(8)[edi]
+mov dword ptr (-4)[ebp],edi
+fld qword ptr (-8)[edi]
+sub esp,8
+fstp qword ptr [esp]
+lea edi,(L37)
+push edi
+call _printf
+add esp,12
+jmp L19
+L20:
+mov edi,dword ptr (20)[ebp]
+movsx edi,byte ptr [edi]
+push edi
+lea edi,(L29)
+push edi
+call _printf
+add esp,8
+jmp L19
+L18:
+mov edi,dword ptr (20)[ebp]
+movsx edi,byte ptr [edi]
+push edi
+lea edi,(L29)
+push edi
+call _printf
+add esp,8
+L19:
+L15:
+inc dword ptr (20)[ebp]
+L17:
+mov edi,dword ptr (20)[ebp]
+movsx edi,byte ptr [edi]
+cmp edi,0
+jne L14
+mov dword ptr (-4)[ebp],0
+mov eax,0
+L12:
+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
+L37 label byte
+db 37
+db 102
+db 0
+align 1
+L35 label byte
+db 37
+db 115
+db 0
+align 1
+L33 label byte
+db 37
+db 120
+db 0
+align 1
+L31 label byte
+db 37
+db 100
+db 0
+align 1
+L29 label byte
+db 37
+db 99
+db 0
+align 1
+L24 label byte
+db 123
+db 37
+db 100
+db 32
+db 37
+db 100
+db 32
+db 37
+db 100
+db 32
+db 37
+db 100
+db 125
+db 0
+align 1
+L11 label byte
+db 37
+db 98
+db 32
+db 37
+db 98
+db 32
+db 37
+db 98
+db 32
+db 37
+db 98
+db 32
+db 37
+db 98
+db 32
+db 37
+db 98
+db 10
+db 0
+align 4
+L10 label byte
+dd 00H
+dd 040140000H
+align 1
+L9 label byte
+db 37
+db 115
+db 37
+db 115
+db 32
+db 37
+db 102
+db 37
+db 99
+db 0
+align 1
+L8 label byte
+db 115
+db 116
+db 0
+align 1
+L7 label byte
+db 116
+db 101
+db 0
+align 1
+L6 label byte
+db 37
+db 115
+db 37
+db 115
+db 32
+db 37
+db 119
+db 37
+db 99
+db 0
+align 1
+L5 label byte
+db 116
+db 101
+db 115
+db 116
+db 32
+db 37
+db 100
+db 37
+db 99
+db 0
+align 1
+L4 label byte
+db 50
+db 0
+align 1
+L3 label byte
+db 116
+db 101
+db 115
+db 116
+db 32
+db 37
+db 115
+db 10
+db 0
+align 1
+L2 label byte
+db 116
+db 101
+db 115
+db 116
+db 32
+db 49
+db 10
+db 0
+_TEXT ends
+end