十六位除八位.txt

来自「一些很有用的VDHL程序设计例子」· 文本 代码 · 共 35 行

TXT
35
字号
.code
.public _DIV_16_8
_DIV_16_8:.proc
	PUSH R4,R5 TO [SP]
	BP = SP
	BP += 0x04
//	R1 = [BP++]					//得到第一个参数
	R2 = [BP]						//得到第二个参数
	R2 = R2 LSL 4
	R2 = R2 LSL 4
	R3 = 8
DIV_16_1:
	R4 = 0x0000
	R4 = R4 LSL 4						//
	R1 = R1 ROL 1						//R1寄存器循环左移一位
	R4 = 0x0000
	R4 = R4 ROL 4
	test R4,0x0001
	JNZ DIV_16_3
	R1 = R1-R2
	JAE DIV_16_2				//JAE:无符数,大于或等于
	R1 = R1+R2
	R3-=1
	JNZ DIV_16_1
	POP R4,R5 FROM [SP]
	RETF
DIV_16_3:
	R1 = R1-R2
DIV_16_2:
	R1+=1
	R3-=1
	JNZ DIV_16_1
	POP R4,R5 FROM [SP]
	RETF
	.end

⌨️ 快捷键说明

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