⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 32位除以16位.txt

📁 ARM设计实例
💻 TXT
字号:
//三十二位除十六位数据的除法
//R1存三十二位的低位   R2存放三十二位的高位 
//C语言调用,unsigned int DIV_32_16(unsigned long int Data1,unsigned int Data2)
//			 unsigned long int DIV_32_16(unsigned long int Data1,unsigned int Data2)
//
.RAM
.VAR IB_Div32_Counter
.CODE
.PUBLIC _DIV_32_16
_DIV_32_16:.PROC
	PUSH R3,R5 TO [SP]
	BP = SP
	BP += 0x08
	R3 = [BP]
	R4 = 16
	[IB_Div32_Counter] = R4
DIV_32_1:
	R4 = 0x0000
	R1 = R1 LSL 1						//R1寄存器循环左移一位
	R4 = R4 LSL 3
	R2 = R2 ROL 1
	R4 = R4 ROL 4
	test R4,0x0001
	JNZ DIV_32_3
	R2 = R2-R3
	JAE DIV_32_2						//JAE:无符数,大于或等于
	R2 = R2+R3
	R4 = [IB_Div32_Counter]
	R4-=1
	[IB_Div32_Counter] = R4
	JNZ DIV_32_1
	POP R3,R5 FROM [SP]
	RETF
DIV_32_3:
	R2 = R2-R3
DIV_32_2:
	R1+=1
	R4 = [IB_Div32_Counter]
	R4-=1
	[IB_Div32_Counter] = R4
	JNZ DIV_32_1
	POP R3,R5 FROM [SP]
	RETF
	.END

⌨️ 快捷键说明

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