?? krecip.asm
字號:
; ************************; ** Start Data Block **; ************************SECTION .dataextern fpuasmextern reciptableglobal _asm_krecipasm; ************************; ** Start Code Block **; ************************SEGMENT .text; Ignore all the 'offset's in the code AH%idefine offsetALIGN 16; "mov fpuasm, eax",\; "fild dword ptr fpuasm",\; "add eax, eax",\; "fstp dword ptr fpuasm",\; "sbb ebx, ebx",\; "mov eax, fpuasm",\; "mov ecx, eax",\; "and eax, 0x007ff000",\; "shr eax, 10",\; "sub ecx, 0x3f800000",\; "shr ecx, 23",\; "mov eax, dword ptr reciptable[eax]",\; "sar eax, cl",\; "xor eax, ebx",\_asm_krecipasm: mov [fpuasm], eax ; Store parameter to memory fild dword [fpuasm] ; Convert the 32-bit int to a fp add eax, eax ; Double the int param's value fstp dword [fpuasm] ; Put the 32-bit float to memory sbb ebx, ebx ; Puts 0 - (carry bit) into ebx AFFECTED BY "add eax eax"!!! mov eax, dword [fpuasm] mov ecx, eax and eax, 007ff000h shr eax, 10 sub ecx, 03f800000h shr ecx, 23 mov eax, dword [reciptable + eax] sar eax, cl xor eax, ebx ret
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -