📄 extract.asm
字号:
RSEG
_AX: DSW 1
_AXH EQU (_AX+1)
_BX: DSW 1
_BXH EQU (_BX+1)
_CX: DSW 1
_CXH EQU (_CX+1)
_DX: DSW 1
_DXH EQU (_DX+1)
CSEG
PUBLIC Extract
;input: _ax;_cx
;function: _ax,_cx平方和开方
Extract:PUSH _AX
PUSH _BX
PUSH _CX
PUSH _DX
ADD 18H,#10
POP _AX
POP _CX
JBC _AXH,7,EXT00
NEG _AX
EXT00: JBC _CXH,7,EXT01
NEG _CX
EXT01: SUB _BX,_AX,_CX
JH EXT05
NEG _BX
SUB _DX,_BX,_AX
JH EXT03
NEG _DX
SHL _DX,#1
CMP _DX,_AX
JNH EXT02
MULU _CX,#51218
MULU _AX,#41388
ADD _AX,_BX,_DX
LJMP ETEND
EXT02: MULU _CX,#57118
MULU _AX,#32538
ADD _AX,_BX,_DX
LJMP ETEND
EXT03: SHR _DX,#1
CMP _DX,_AX
JH EXT04
MULU _CX,#61968
MULU _AX,#22448
ADD _AX,_BX,_DX
LJMP ETEND
EXT04: MULU _CX,#65308
MULU _AX,#8308
ADD _AX,_BX,_DX
LJMP ETEND
EXT05: SUB _DX,_BX,_CX
JH EXT07
NEG _DX
SHL _DX,#1
CMP _DX,_CX
JNH EXT06
MULU _AX,#51218
MULU _CX,#41388
ADD _AX,_BX,_DX
LJMP ETEND
EXT06: MULU _AX,#57118
MULU _CX,#32538
ADD _AX,_BX,_DX
LJMP ETEND
EXT07: SHR _DX,#1
CMP _DX,_CX
JH EXT08
MULU _AX,#61968
MULU _CX,#22448
ADD _AX,_BX,_DX
LJMP ETEND
EXT08: MULU _AX,#65308
MULU _CX,#8308
ADD _AX,_BX,_DX
ETEND: LD 1CH,_AX
SUB 18H,#14
POP _DX
POP _CX
POP _BX
POP _AX
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -