📄 polevl.asm
字号:
; Static Name Aliases; TITLE polevl_TEXT SEGMENT BYTE PUBLIC 'CODE'_TEXT ENDSCONST SEGMENT WORD PUBLIC 'CONST'CONST ENDS_BSS SEGMENT WORD PUBLIC 'BSS'_BSS ENDS_DATA SEGMENT WORD PUBLIC 'DATA'_DATA ENDSDGROUP GROUP CONST, _BSS, _DATA ASSUME CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUPPUBLIC _polevlPUBLIC _p1evl_DATA SEGMENTEXTRN __chkstk:NEAREXTRN __fac:NEAREXTRN __fltused:NEAR$T20001 DQ 0000000000H ; .0000000000000000ans DQ 0ctrlw DW 0_DATA ENDS_TEXT SEGMENT PUBLIC _polevl_polevl PROC NEAR push bp mov bp,sp mov ax,12 call __chkstk push si mov si,[bp+12]; fstcw ctrlw; fwait; mov ax,ctrlw; or ax,00100h; mov ctrlw,ax; fldcw ctrlw fldz fwait mov ax,[bp+14] inc ax mov [bp-12],ax$D15: fmul QWORD PTR [bp+4] add si,8 fwait fadd QWORD PTR [si-8] fwait dec WORD PTR [bp-12] jne $D15 fstp ans; fstcw ctrlw; fwait; mov ax,ctrlw; and ax,0feffh; mov ctrlw,ax; fldcw ctrlw lea ax, ans fwait pop si mov sp,bp pop bp ret _polevl ENDP PUBLIC _p1evl_p1evl PROC NEAR push bp mov bp,sp mov ax,12 call __chkstk push si; fstcw ctrlw; fwait; mov ax,ctrlw; or ax,00100h; mov ctrlw,ax; fldcw ctrlw mov si,[bp+12] fld QWORD PTR [bp+4] add si,8 fadd QWORD PTR [si-8] fwait mov ax,[bp+14] dec ax mov [bp-12],ax$D26: fmul QWORD PTR [bp+4] add si,8 fadd QWORD PTR [si-8] fwait dec WORD PTR [bp-12] jne $D26 fstp ans lea ax, ans; fstcw ctrlw; fwait; mov ax,ctrlw; and ax,0feffh; mov ctrlw,ax; fldcw ctrlw fwait pop si mov sp,bp pop bp ret _p1evl ENDP_TEXT ENDSEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -