双字节二进制无符号数开平方.txt

来自「C51常用子程序 [精]」· 文本 代码 · 共 31 行

TXT
31
字号
标号: SH2功能:双字节二进制无符号数开平方(快速)

入口条件:被开方数在R2、R3中。
出口信息:平方根仍在R2、R3中,整数部分的位数为原数的一半,其余为小数。
影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节

SH2: MOV A,R2
	ORL A,R3
	JNZ SH20
	RET ;被开方数为零,不必运算
SH20: MOV R7,#0 ;左规次数初始化
	MOV A,R2
SH22: ANL A,#0C0H ;被开方数高字节小于40H否?
	JNZ SQRH ;不小于40H,左规格化完成,转开方过程
	CLR C ;每左规一次,被开方数左移两位
	MOV A,R3
	RLC A
	MOV F0,C
	CLR C
	RLC A
	MOV R3,A
	MOV A,R2
	MOV ACC.7,C
	MOV C,F0
	RLC A
	RLC A
	MOV R2,A
	INC R7 ;左规次数加一
	SJMP SH22 ;继续左规

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?