⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paranoia.sbk

📁 3D 游戏界的大牛人 John Carmack 终于放出了 Q3 的源代码
💻 SBK
📖 第 1 页 / 共 5 页
字号:
.486
.model flat
extrn __fltused:near
extrn __ftol:near
_DATA segment
public _Zero
align 4
_Zero label byte
dd 00H
dd 00H
public _Half
align 4
_Half label byte
dd 00H
dd 03fe00000H
public _One
align 4
_One label byte
dd 00H
dd 03ff00000H
public _Two
align 4
_Two label byte
dd 00H
dd 040000000H
public _Three
align 4
_Three label byte
dd 00H
dd 040080000H
public _Four
align 4
_Four label byte
dd 00H
dd 040100000H
public _Five
align 4
_Five label byte
dd 00H
dd 040140000H
public _Eight
align 4
_Eight label byte
dd 00H
dd 040200000H
public _Nine
align 4
_Nine label byte
dd 00H
dd 040220000H
public _TwentySeven
align 4
_TwentySeven label byte
dd 00H
dd 0403b0000H
public _ThirtyTwo
align 4
_ThirtyTwo label byte
dd 00H
dd 040400000H
public _TwoForty
align 4
_TwoForty label byte
dd 00H
dd 0406e0000H
public _MinusOne
align 4
_MinusOne label byte
dd 00H
dd 0bff00000H
public _OneAndHalf
align 4
_OneAndHalf label byte
dd 00H
dd 03ff80000H
public _NoTrials
align 4
_NoTrials label byte
dd 20
public _sigfpe
_DATA ends
_TEXT segment
_sigfpe:
push ebx
push esi
push edi
push ebp
mov ebp,esp
inc dword ptr (_fpecount)
lea edi,(L2)
push edi
call _printf
add esp,4
lea edi,(__iob+32)
push edi
call _fflush
add esp,4
mov edi,dword ptr (_sigsave)
cmp edi,0
je L4
mov edi,dword ptr (_sigsave)
push edi
push 8
call _signal
add esp,8
mov dword ptr (_sigsave),0
push 1
lea edi,(_ovfl_buf)
push edi
call _longjmp
add esp,8
L4:
call _abort
add esp,0
L1:
mov esp,ebp
pop ebp
pop edi
pop esi
pop ebx
ret
_TEXT ends
_DATA segment
align 4
L757 label byte
dd L758
dd L759
dd L760
dd L761
public _main
_DATA ends
_TEXT segment
_main:
push ebx
push esi
push edi
push ebp
mov ebp,esp
sub esp,1684
fld qword ptr (L7)
fstp qword ptr (_Zero)
fld qword ptr (L8)
fstp qword ptr (_One)
fld qword ptr (_One)
fstp qword ptr (-8)[ebp]
fld qword ptr (-8)[ebp]
fadd qword ptr (-8)[ebp]
fstp qword ptr (_Two)
fld qword ptr (_Two)
fstp qword ptr (-16)[ebp]
fld qword ptr (-16)[ebp]
fadd qword ptr (-8)[ebp]
fstp qword ptr (_Three)
fld qword ptr (_Three)
fstp qword ptr (-24)[ebp]
fld qword ptr (-24)[ebp]
fadd qword ptr (-8)[ebp]
fstp qword ptr (_Four)
fld qword ptr (_Four)
fstp qword ptr (-32)[ebp]
fld qword ptr (-32)[ebp]
fadd qword ptr (-8)[ebp]
fstp qword ptr (_Five)
fld qword ptr (-32)[ebp]
fadd qword ptr (-32)[ebp]
fstp qword ptr (_Eight)
fld qword ptr (-24)[ebp]
fmul qword ptr (-24)[ebp]
fstp qword ptr (_Nine)
fld qword ptr (_Nine)
fmul qword ptr (-24)[ebp]
fstp qword ptr (_TwentySeven)
fld qword ptr (-32)[ebp]
fmul qword ptr (_Eight)
fstp qword ptr (_ThirtyTwo)
fld qword ptr (-32)[ebp]
fmul qword ptr (_Five)
fmul qword ptr (-24)[ebp]
fmul qword ptr (-32)[ebp]
fstp qword ptr (_TwoForty)
fld qword ptr (-8)[ebp]
fchs
fstp qword ptr (_MinusOne)
fld qword ptr (-8)[ebp]
fdiv qword ptr (-16)[ebp]
fstp qword ptr (_Half)
fld qword ptr (-8)[ebp]
fadd qword ptr (_Half)
fstp qword ptr (_OneAndHalf)
mov dword ptr (_ErrCnt),0
mov dword ptr (_ErrCnt+4),0
mov dword ptr (_ErrCnt+8),0
mov dword ptr (_ErrCnt+12),0
mov dword ptr (_PageNo),1
mov dword ptr (_Milestone),0
lea edi,(_sigfpe)
push edi
push 8
call _signal
add esp,8
call _Instructions
add esp,0
call _Pause
add esp,0
call _Heading
add esp,0
call _Pause
add esp,0
call _Characteristics
add esp,0
call _Pause
add esp,0
call _History
add esp,0
call _Pause
add esp,0
mov dword ptr (_Milestone),7
lea edi,(L12)
push edi
call _printf
add esp,4
lea edi,(L14)
push edi
fld qword ptr (_Zero)
fadd qword ptr (_Zero)
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L15
fld qword ptr (_One)
fsub qword ptr (_One)
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L15
fld qword ptr (_Zero)
fcomp qword ptr (_One)
fstsw ax
sahf
jae L15
fld qword ptr (_One)
fadd qword ptr (_One)
fld qword ptr (_Two)
fcompp
fstsw ax
sahf
jne L15
mov dword ptr (-36)[ebp],1
jmp L16
L15:
mov dword ptr (-36)[ebp],0
L16:
mov edi,dword ptr (-36)[ebp]
push edi
push 0
call _TstCond
add esp,12
fld qword ptr (_Zero)
fchs
fstp qword ptr (_Z)
fld qword ptr (L7)
fcomp qword ptr (_Z)
fstsw ax
sahf
je L17
inc dword ptr (_ErrCnt)
lea edi,(L19)
push edi
call _printf
add esp,4
fld qword ptr (L20)
fstp qword ptr (_U1)
fld qword ptr (L8)
fstp qword ptr (_Radix)
call _TstPtUf
add esp,0
L17:
lea edi,(L22)
push edi
fld qword ptr (_Two)
fadd qword ptr (_One)
fcomp qword ptr (_Three)
fstsw ax
sahf
jne L23
fld qword ptr (_Three)
fadd qword ptr (_One)
fcomp qword ptr (_Four)
fstsw ax
sahf
jne L23
fld qword ptr (_Four)
fld qword ptr (_Two)
fld qword ptr (_Two)
fchs
fmulp st(1),st
faddp st(1),st
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L23
fld qword ptr (_Four)
fsub qword ptr (_Three)
fsub qword ptr (_One)
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L23
mov dword ptr (-56)[ebp],1
jmp L24
L23:
mov dword ptr (-56)[ebp],0
L24:
mov edi,dword ptr (-56)[ebp]
push edi
push 0
call _TstCond
add esp,12
fld qword ptr (L7)
fsub qword ptr (_One)
fcomp qword ptr (_MinusOne)
fstsw ax
sahf
jne L27
fld qword ptr (_MinusOne)
fadd qword ptr (_One)
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L27
fld qword ptr (_One)
fadd qword ptr (_MinusOne)
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L27
fld qword ptr (_One)
sub esp,8
fstp qword ptr [esp]
call _fabs
add esp,8
fstp qword ptr (-132)[ebp]
fld qword ptr (_MinusOne)
fadd qword ptr (-132)[ebp]
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L27
fld qword ptr (_MinusOne)
fld qword ptr (_MinusOne)
fmul qword ptr (_MinusOne)
faddp st(1),st
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L27
mov dword ptr (-100)[ebp],1
jmp L28
L27:
mov dword ptr (-100)[ebp],0
L28:
lea edi,(L26)
push edi
mov edi,dword ptr (-100)[ebp]
push edi
push 0
call _TstCond
add esp,12
lea edi,(L30)
push edi
fld qword ptr (_Half)
fadd qword ptr (_MinusOne)
fadd qword ptr (_Half)
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L31
mov dword ptr (-152)[ebp],1
jmp L32
L31:
mov dword ptr (-152)[ebp],0
L32:
mov edi,dword ptr (-152)[ebp]
push edi
push 0
call _TstCond
add esp,12
mov dword ptr (_Milestone),10
lea edi,(L34)
push edi
fld qword ptr (_Three)
fmul qword ptr (_Three)
fcomp qword ptr (_Nine)
fstsw ax
sahf
jne L35
fld qword ptr (_Nine)
fmul qword ptr (_Three)
fcomp qword ptr (_TwentySeven)
fstsw ax
sahf
jne L35
fld qword ptr (_Four)
fadd qword ptr (_Four)
fcomp qword ptr (_Eight)
fstsw ax
sahf
jne L35
fld qword ptr (_Eight)
fmul qword ptr (_Four)
fcomp qword ptr (_ThirtyTwo)
fstsw ax
sahf
jne L35
fld qword ptr (_ThirtyTwo)
fsub qword ptr (_TwentySeven)
fsub qword ptr (_Four)
fsub qword ptr (_One)
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L35
mov dword ptr (-164)[ebp],1
jmp L36
L35:
mov dword ptr (-164)[ebp],0
L36:
mov edi,dword ptr (-164)[ebp]
push edi
push 0
call _TstCond
add esp,12
lea edi,(L38)
push edi
fld qword ptr (_Four)
fadd qword ptr (_One)
fcomp qword ptr (_Five)
fstsw ax
sahf
jne L39
fld qword ptr (_Four)
fmul qword ptr (_Five)
fmul qword ptr (_Three)
fmul qword ptr (_Four)
fcomp qword ptr (_TwoForty)
fstsw ax
sahf
jne L39
fld qword ptr (_TwoForty)
fdiv qword ptr (_Three)
fld qword ptr (_Four)
fmul qword ptr (_Four)
fmul qword ptr (_Five)
fsubp st(1),st
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L39
fld qword ptr (_TwoForty)
fdiv qword ptr (_Four)
fld qword ptr (_Five)
fmul qword ptr (_Three)
fmul qword ptr (_Four)
fsubp st(1),st
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L39
fld qword ptr (_TwoForty)
fdiv qword ptr (_Five)
fld qword ptr (_Four)
fmul qword ptr (_Three)
fmul qword ptr (_Four)
fsubp st(1),st
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
jne L39
mov dword ptr (-216)[ebp],1
jmp L40
L39:
mov dword ptr (-216)[ebp],0
L40:
mov edi,dword ptr (-216)[ebp]
push edi
push 0
call _TstCond
add esp,12
cmp dword ptr (_ErrCnt),0
jne L41
lea edi,(L43)
push edi
call _printf
add esp,4
lea edi,(L44)
push edi
call _printf
add esp,4
L41:
lea edi,(L45)
push edi
call _printf
add esp,4
fld qword ptr (_One)
fstp qword ptr (_W)
L46:
fld qword ptr (_W)
fstp qword ptr (-264)[ebp]
fld qword ptr (-264)[ebp]
fadd qword ptr (-264)[ebp]
fstp qword ptr (_W)
fld qword ptr (_W)
fstp qword ptr (-272)[ebp]
fld qword ptr (-272)[ebp]
fadd qword ptr (_One)
fstp qword ptr (_Y)
fld qword ptr (_Y)
fsub qword ptr (-272)[ebp]
fstp qword ptr (_Z)
fld qword ptr (_Z)
fsub qword ptr (_One)
fstp qword ptr (_Y)
L47:
fld qword ptr (_Y)
sub esp,8
fstp qword ptr [esp]
call _fabs
add esp,8
fstp qword ptr (-264)[ebp]
fld qword ptr (_MinusOne)
fadd qword ptr (-264)[ebp]
fld qword ptr (_Zero)
fcompp
fstsw ax
sahf
ja L46
fld qword ptr (_Zero)
fstp qword ptr (_Precision)
fld qword ptr (_One)
fstp qword ptr (_Y)
L49:
fld qword ptr (_Y)
fstp qword ptr (-280)[ebp]
fld qword ptr (_W)
fadd qword ptr (-280)[ebp]
fstp qword ptr (_Radix)
fld qword ptr (-280)[ebp]
fadd qword ptr (-280)[ebp]
fstp qword ptr (_Y)
fld qword ptr (_Radix)
fsub qword ptr (_W)
fstp qword ptr (_Radix)
L50:
fld qword ptr (_Zero)
fcomp qword ptr (_Radix)
fstsw ax
sahf
je L49
fld qword ptr (_Two)
fcomp qword ptr (_Radix)
fstsw ax
sahf
jbe L52
fld qword ptr (_One)
fstp qword ptr (_Radix)
L52:
fld qword ptr (_Radix)
sub esp,8
fstp qword ptr [esp]
lea edi,(L54)
push edi
call _printf
add esp,12
fld qword ptr (L8)
fcomp qword ptr (_Radix)
fstsw ax
sahf
je L55
fld qword ptr (_One)
fstp qword ptr (_W)
L57:
fld qword ptr (_Precision)
fadd qword ptr (_One)
fstp qword ptr (_Precision)
fld qword ptr (_W)
fmul qword ptr (_Radix)
fstp qword ptr (_W)
fld qword ptr (_W)
fadd qword ptr (_One)
fstp qword ptr (_Y)
L58:
fld qword ptr (_Y)
fsub qword ptr (_W)
fld qword ptr (_One)
fcompp
fstsw ax
sahf
je L57
L55:
fld qword ptr (_One)
fdiv qword ptr (_W)
fstp qword ptr (_U1)
fld qword ptr (_U1)
fstp qword ptr (-272)[ebp]
fld qword ptr (_Radix)
fmul qword ptr (-272)[ebp]
fstp qword ptr (_U2)
fld qword ptr (-272)[ebp]
sub esp,8
fstp qword ptr [esp]
lea edi,(L60)
push edi
call _printf
add esp,12
lea edi,(L61)
push edi
call _printf
add esp,4
fld qword ptr (_Radix)
fstp qword ptr (_E0)
fld qword ptr (_U1)
fstp qword ptr (_E1)
fld qword ptr (_U2)
fstp qword ptr (_E9)
fld qword ptr (_Precision)
fstp qword ptr (_E3)
fld qword ptr (_Four)
fdiv qword ptr (_Three)
fstp qword ptr (_X)
fld qword ptr (_X)
fsub qword ptr (_One)
fstp qword ptr (_Third)
fld qword ptr (_Third)
fstp qword ptr (-280)[ebp]
fld qword ptr (_Half)
fsub qword ptr (-280)[ebp]
fstp qword ptr (_F6)
fld qword ptr (_F6)
fstp qword ptr (-288)[ebp]
fld qword ptr (-288)[ebp]
fadd qword ptr (-288)[ebp]
fstp qword ptr (_X)
fld qword ptr (_X)
fsub qword ptr (-280)[ebp]
sub esp,8
fstp qword ptr [esp]
call _fabs
add esp,8
fstp qword ptr (-296)[ebp]
fld qword ptr (-296)[ebp]
fstp qword ptr (_X)
fld qword ptr (_U2)
fcomp qword ptr (_X)
fstsw ax
sahf
jbe L62
fld qword ptr (_U2)
fstp qword ptr (_X)
L62:
L64:
fld qword ptr (_X)
fstp qword ptr (_U2)
fld qword ptr (_U2)
fstp qword ptr (-304)[ebp]
fld qword ptr (_Half)
fmul qword ptr (-304)[ebp]
fld qword ptr (_ThirtyTwo)
fmul qword ptr (-304)[ebp]
fmul qword ptr (-304)[ebp]
faddp st(1),st
fstp qword ptr (_Y)
fld qword ptr (_One)
fadd qword ptr (_Y)
fstp qword ptr (_Y)
fld qword ptr (_Y)
fsub qword ptr (_One)
fstp qword ptr (_X)
L65:
fld qword ptr (_X)
fcomp qword ptr (_U2)
fstsw ax
sahf
jae L67
fld qword ptr (_Zero)
fcomp qword ptr (_X)
fstsw ax
sahf
jb L64
L67:
fld qword ptr (_Two)
fdiv qword ptr (_Three)
fstp qword ptr (_X)
fld qword ptr (_X)
fsub qword ptr (_Half)
fstp qword ptr (_F6)
fld qword ptr (_F6)
fstp qword ptr (-320)[ebp]
fld qword ptr (-320)[ebp]
fadd qword ptr (-320)[ebp]
fstp qword ptr (_Third)
fld qword ptr (_Third)
fsub qword ptr (_Half)
fstp qword ptr (_X)
fld qword ptr (_X)
fadd qword ptr (-320)[ebp]
sub esp,8
fstp qword ptr [esp]
call _fabs
add esp,8
fstp qword ptr (-328)[ebp]
fld qword ptr (-328)[ebp]
fstp qword ptr (_X)
fld qword ptr (_U1)
fcomp qword ptr (_X)
fstsw ax
sahf
jbe L68
fld qword ptr (_U1)
fstp qword ptr (_X)
L68:
L70:
fld qword ptr (_X)
fstp qword ptr (_U1)
fld qword ptr (_U1)
fstp qword ptr (-344)[ebp]
fld qword ptr (_Half)
fmul qword ptr (-344)[ebp]
fld qword ptr (_ThirtyTwo)
fmul qword ptr (-344)[ebp]
fmul qword ptr (-344)[ebp]
faddp st(1),st
fstp qword ptr (_Y)
fld qword ptr (_Half)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -