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 + -
显示快捷键?