123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416 |
- .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
|