ioef/code/tools/lcc/x86/win32/tst/switch.sbk
2005-10-04 15:18:22 +00:00

960 lines
10 KiB
Text

.486
.model flat
extrn __fltused:near
extrn __ftol:near
public _main
_TEXT segment
_main:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,8
lea edi,(L6)
mov dword ptr (-4)[ebp],edi
jmp L5
L2:
mov edi,dword ptr (-4)[ebp]
movsx edi,byte ptr [edi]
push edi
call _backslash
add esp,4
push eax
mov edi,dword ptr (-4)[ebp]
movsx edi,byte ptr [edi]
push edi
lea edi,(L7)
push edi
call _printf
add esp,12
L3:
inc dword ptr (-4)[ebp]
L5:
mov edi,dword ptr (-4)[ebp]
movsx edi,byte ptr [edi]
cmp edi,0
jne L2
call _f
add esp,0
call _g
add esp,0
call _h
add esp,0
mov dword ptr (-8)[ebp],16777216
jmp L11
L8:
mov edi,dword ptr (-8)[ebp]
push edi
call _big
add esp,4
L9:
add dword ptr (-8)[ebp],16777216
L11:
mov edi,dword ptr (-8)[ebp]
and edi,117440512
cmp edi,0
jne L8
call _limit
add esp,0
mov eax,0
L1:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
public _backslash
_backslash:
push ebx
push esi
push edi
push ebp
mov ebp,esp
mov edi,dword ptr (20)[ebp]
cmp edi,102
je L16
cmp edi,102
jg L22
L21:
cmp dword ptr (20)[ebp],98
je L15
jmp L13
L22:
mov edi,dword ptr (20)[ebp]
cmp edi,110
je L17
cmp edi,110
jl L13
L23:
mov edi,dword ptr (20)[ebp]
cmp edi,114
je L18
cmp edi,116
je L19
cmp edi,118
je L20
jmp L13
L15:
mov eax,8
jmp L12
L16:
mov eax,12
jmp L12
L17:
mov eax,10
jmp L12
L18:
mov eax,13
jmp L12
L19:
mov eax,9
jmp L12
L20:
mov eax,11
jmp L12
L13:
mov eax,dword ptr (20)[ebp]
L12:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
public _f
_f:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,12
mov dword ptr (-8)[ebp],0
lea edi,(L25)
push edi
call _printf
add esp,4
mov dword ptr (-4)[ebp],0
L26:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-12)[ebp],edi
mov edi,dword ptr (-4)[ebp]
cmp edi,1
jl L30
cmp edi,20
jg L30
jmp dword ptr (L42-4)[edi*4]
_TEXT ends
_TEXT segment
align 4
L42 label byte
dd L32
dd L33
dd L30
dd L30
dd L30
dd L30
dd L34
dd L35
dd L36
dd L30
dd L30
dd L30
dd L30
dd L30
dd L30
dd L37
dd L38
dd L39
dd L40
dd L41
_TEXT ends
_TEXT segment
L32:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L33:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L34:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L35:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L36:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L37:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L38:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L39:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L40:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
jmp L31
L41:
mov edi,dword ptr (-4)[ebp]
mov dword ptr (-8)[ebp],edi
L30:
L31:
mov edi,dword ptr (-8)[ebp]
push edi
lea edi,(L44)
push edi
call _printf
add esp,8
L27:
inc dword ptr (-4)[ebp]
cmp dword ptr (-4)[ebp],20
jle L26
mov eax,0
L24:
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
lea edi,(L46)
push edi
call _printf
add esp,4
mov dword ptr (-4)[ebp],1
L47:
mov edi,dword ptr (-4)[ebp]
cmp edi,1001
jl L64
cmp edi,1004
jg L65
jmp dword ptr (L66-4004)[edi*4]
_TEXT ends
_TEXT segment
align 4
L66 label byte
dd L60
dd L60
dd L60
dd L60
_TEXT ends
_TEXT segment
L64:
mov edi,dword ptr (-4)[ebp]
cmp edi,1
jl L51
cmp edi,8
jg L51
jmp dword ptr (L68-4)[edi*4]
_TEXT ends
_TEXT segment
align 4
L68 label byte
dd L53
dd L53
dd L55
dd L55
dd L55
dd L57
dd L57
dd L57
_TEXT ends
_TEXT segment
L65:
mov edi,dword ptr (-4)[ebp]
cmp edi,3001
jl L51
cmp edi,3004
jg L51
jmp dword ptr (L70-12004)[edi*4]
_TEXT ends
_TEXT segment
align 4
L70 label byte
dd L62
dd L62
dd L62
dd L62
_TEXT ends
_TEXT segment
L53:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L54)
push edi
call _printf
add esp,8
jmp L52
L55:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L56)
push edi
call _printf
add esp,8
jmp L52
L57:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L58)
push edi
call _printf
add esp,8
L51:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L59)
push edi
call _printf
add esp,8
jmp L52
L60:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L61)
push edi
call _printf
add esp,8
jmp L52
L62:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L63)
push edi
call _printf
add esp,8
L52:
L48:
inc dword ptr (-4)[ebp]
cmp dword ptr (-4)[ebp],10
jle L47
mov eax,0
L45:
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,8
mov dword ptr (-8)[ebp],0
lea edi,(L73)
push edi
call _printf
add esp,4
mov dword ptr (-4)[ebp],1
L74:
mov edi,dword ptr (-4)[ebp]
cmp edi,264
je L86
cmp edi,264
jg L94
L93:
mov edi,dword ptr (-4)[ebp]
cmp edi,120
je L84
cmp edi,120
jg L96
L95:
mov edi,dword ptr (-4)[ebp]
cmp edi,8
je L83
cmp edi,8
jl L78
L97:
cmp dword ptr (-4)[ebp],16
je L82
jmp L78
L96:
mov edi,dword ptr (-4)[ebp]
cmp edi,128
je L80
cmp edi,128
jl L78
L98:
cmp dword ptr (-4)[ebp],248
je L87
jmp L78
L94:
mov edi,dword ptr (-4)[ebp]
cmp edi,288
je L91
cmp edi,288
jg L100
L99:
mov edi,dword ptr (-4)[ebp]
cmp edi,272
je L88
cmp edi,272
jl L78
L101:
cmp dword ptr (-4)[ebp],280
je L85
jmp L78
L100:
mov edi,dword ptr (-4)[ebp]
cmp edi,304
je L89
cmp edi,304
jg L103
L102:
cmp dword ptr (-4)[ebp],296
je L90
jmp L78
L103:
cmp dword ptr (-4)[ebp],312
je L92
jmp L78
L78:
inc dword ptr (-8)[ebp]
jmp L75
L80:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L82:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L83:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L84:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L85:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L86:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L87:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L88:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L89:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L90:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L91:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
jmp L79
L92:
mov edi,dword ptr (-4)[ebp]
push edi
lea edi,(L81)
push edi
call _printf
add esp,8
L79:
L75:
inc dword ptr (-4)[ebp]
cmp dword ptr (-4)[ebp],500
jle L74
mov edi,dword ptr (-8)[ebp]
push edi
lea edi,(L104)
push edi
call _printf
add esp,8
mov eax,0
L72:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
public _big
_big:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,4
mov edi,dword ptr (20)[ebp]
and edi,06000000H
mov dword ptr (-4)[ebp],edi
mov edi,dword ptr (-4)[ebp]
cmp edi,33554432
je L111
cmp edi,33554432
jg L115
L114:
mov edi,dword ptr (-4)[ebp]
cmp edi,-2
je L109
cmp edi,-1
je L109
cmp edi,0
je L109
jmp L106
L115:
mov edi,dword ptr (-4)[ebp]
cmp edi,67108864
je L112
jmp L106
L109:
mov edi,dword ptr (20)[ebp]
push edi
lea edi,(L110)
push edi
call _printf
add esp,8
jmp L107
L111:
mov edi,dword ptr (20)[ebp]
push edi
lea edi,(L110)
push edi
call _printf
add esp,8
jmp L107
L112:
mov edi,dword ptr (20)[ebp]
push edi
lea edi,(L110)
push edi
call _printf
add esp,8
jmp L107
L106:
mov edi,dword ptr (20)[ebp]
push edi
lea edi,(L113)
push edi
call _printf
add esp,8
L107:
mov eax,0
L105:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
public _limit
_limit:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,4
mov dword ptr (-4)[ebp],-2147483648
L117:
mov edi,dword ptr (-4)[ebp]
mov esi,-2147483648
cmp edi,-2147483648
jl L121
cmp edi,-2147483644
jg L121
lea edi,[edi*4]
lea esi,[esi*4]
sub edi,esi
jmp dword ptr (L134)[edi]
_TEXT ends
_TEXT segment
align 4
L134 label byte
dd L123
dd L125
dd L127
dd L129
dd L131
_TEXT ends
_TEXT segment
L123:
lea edi,(L124)
push edi
call _printf
add esp,4
jmp L122
L125:
lea edi,(L126)
push edi
call _printf
add esp,4
jmp L122
L127:
lea edi,(L128)
push edi
call _printf
add esp,4
jmp L122
L129:
lea edi,(L130)
push edi
call _printf
add esp,4
jmp L122
L131:
lea edi,(L132)
push edi
call _printf
add esp,4
jmp L122
L121:
lea edi,(L133)
push edi
call _printf
add esp,4
L122:
L118:
inc dword ptr (-4)[ebp]
cmp dword ptr (-4)[ebp],-2147483643
jle L117
mov dword ptr (-4)[ebp],2147483647
L135:
mov edi,dword ptr (-4)[ebp]
mov esi,2147483643
cmp edi,2147483643
jl L139
cmp edi,2147483647
jg L139
lea edi,[edi*4]
lea esi,[esi*4]
sub edi,esi
jmp dword ptr (L146)[edi]
_TEXT ends
_TEXT segment
align 4
L146 label byte
dd L145
dd L144
dd L143
dd L142
dd L141
_TEXT ends
_TEXT segment
L141:
lea edi,(L124)
push edi
call _printf
add esp,4
jmp L140
L142:
lea edi,(L126)
push edi
call _printf
add esp,4
jmp L140
L143:
lea edi,(L128)
push edi
call _printf
add esp,4
jmp L140
L144:
lea edi,(L130)
push edi
call _printf
add esp,4
jmp L140
L145:
lea edi,(L132)
push edi
call _printf
add esp,4
jmp L140
L139:
lea edi,(L133)
push edi
call _printf
add esp,4
L140:
L136:
dec dword ptr (-4)[ebp]
cmp dword ptr (-4)[ebp],2147483642
jge L135
mov eax,0
L116:
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
L133 label byte
db 53
db 10
db 0
align 1
L132 label byte
db 52
db 10
db 0
align 1
L130 label byte
db 51
db 10
db 0
align 1
L128 label byte
db 50
db 10
db 0
align 1
L126 label byte
db 49
db 10
db 0
align 1
L124 label byte
db 48
db 10
db 0
align 1
L113 label byte
db 120
db 32
db 61
db 32
db 48
db 120
db 37
db 120
db 32
db 40
db 100
db 101
db 102
db 97
db 117
db 108
db 116
db 41
db 10
db 0
align 1
L110 label byte
db 120
db 32
db 61
db 32
db 48
db 120
db 37
db 120
db 10
db 0
align 1
L104 label byte
db 37
db 100
db 32
db 100
db 101
db 102
db 97
db 117
db 108
db 116
db 115
db 10
db 0
align 1
L81 label byte
db 105
db 32
db 61
db 32
db 37
db 100
db 10
db 0
align 1
L73 label byte
db 104
db 58
db 10
db 0
align 1
L63 label byte
db 54
db 32
db 37
db 100
db 10
db 0
align 1
L61 label byte
db 53
db 32
db 37
db 100
db 10
db 0
align 1
L59 label byte
db 100
db 32
db 37
db 100
db 10
db 0
align 1
L58 label byte
db 51
db 32
db 37
db 100
db 10
db 0
align 1
L56 label byte
db 50
db 32
db 37
db 100
db 10
db 0
align 1
L54 label byte
db 49
db 32
db 37
db 100
db 10
db 0
align 1
L46 label byte
db 103
db 58
db 10
db 0
align 1
L44 label byte
db 120
db 32
db 61
db 32
db 37
db 100
db 10
db 0
align 1
L25 label byte
db 102
db 58
db 10
db 0
align 1
L7 label byte
db 37
db 99
db 32
db 61
db 32
db 48
db 120
db 37
db 120
db 10
db 0
align 1
L6 label byte
db 98
db 102
db 110
db 114
db 116
db 118
db 120
db 0
_TEXT ends
end