sqrt.asm
来自「入门级的开方程序」· 汇编 代码 · 共 66 行
ASM
66 行
.sect"reset"
reset: .word init
.text
init: ldi 80h,dp
ldi 1800h,st
ldi @STCK,sp
ldi @MCTL,ar0
ldi @MBUS,r0
sti r0,*ar0
main: ;ldi @OPR,ar1
ldf @OPERATOR,r0
call sqrt
ldf r0,r4
ldi @RESULT,ar0
stf r4,*ar0
br $
sqrt: ldf r0,r3
;retsle
pushf r0
pop r1
ash -24,r1
addi 1,r1
ash -1,r1
negi r1,r1
ash 24,r1
push r1
popf r1
mpyf 0.5,r0
mpyf3 r1,r1,r2
mpyf r0,r2
subrf 1.5,r2
mpyf r2,r1
rnd r1,r1
mpyf3 r1,r1,r2
mpyf r0,r2
subrf 1.5,r2
mpyf r2,r1
rnd r1,r1
mpyf3 r1,r1,r2
mpyf r0,r2
subrf 1.5,r2
mpyf r2,r1
rnd r1,r1
mpyf3 r1,r1,r2
mpyf r0,r2
subrf 1.5,r2
mpyf r2,r1
rnd r1,r1
mpyf3 r1,r1,r2
mpyf r0,r2
subrf 1.5,r2
mpyf r2,r1
rnd r1,r0
mpyf r3,r0
rets
.data
STCK .word 809e00h
MBUS .word 1038h
MCTL .word 808064h
RESULT .word 804000h
OPR .word OPERATOR
OPERATOR .float 100
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?