关于单片机汇编语言无符号数4字节除以2字节的除法程序
用MCS-51单片机汇编语言实现,我弄了1天还是弄不出来,R7R6R5R4/R3R2商放在R7R6R5R4余数放在R1R0(R7、R3、R1分别是最高位)求高手帮忙解决~...
用MCS-51单片机汇编语言实现,我弄了1天还是弄不出来,R7R6R5R4/R3R2
商放在R7R6R5R4 余数放在R1R0(R7、R3、R1分别是最高位)
求高手帮忙解决~~高分求救!!我能编程实现一个·但有个缺点就是除数R3R2的最高位必须为0才能除正确,要是最高位是1的话容易出错~~~~~~~解决好了有加分~~~~!!!!谢谢。。。
是没人回还是分太低?? 展开
商放在R7R6R5R4 余数放在R1R0(R7、R3、R1分别是最高位)
求高手帮忙解决~~高分求救!!我能编程实现一个·但有个缺点就是除数R3R2的最高位必须为0才能除正确,要是最高位是1的话容易出错~~~~~~~解决好了有加分~~~~!!!!谢谢。。。
是没人回还是分太低?? 展开
展开全部
ProteUS 调试通过!
BUF1 EQU 2000H
BUF2 EQU 3000H
ORG 00H
AJMP _INIT_SYS
_INIT_SYS:
MOV SP,#80H
; R7R6R5R4/R3R2 = R7R6R5R4 ... R1R0
MOV R2,#00H
MOV R3,#0FH
MOV R4,#04H
MOV R5,#05H
MOV R6,#06H
MOV R7,#08H
LCALL _DIV
AJMP $
_DIV: ;{
CLR C
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
_DIV_LOOP:
CLR C
MOV A,R4
SUBB A,R2
MOV R4,A
MOV A,R5
SUBB A,R3
MOV R5,A
MOV A,R6
SUBB A,#0
MOV R6,A
MOV A,R7
SUBB A,#0
MOV R7,A
JC _DIV_END
_INC_SHANG:
CLR C
MOV A,30H
ADDC A,#1
MOV 30H,A
MOV A,31H
ADDC A,#0
MOV 31H,A
MOV A,32H
ADDC A,#0
MOV 32H,A
MOV A,33H
ADDC A,#0
MOV 33H,A
LJMP _DIV_LOOP
_DIV_END:
CLR C
MOV A,R2
ADDC A,R4
MOV R0,A
MOV A,R3
ADDC A,R5
MOV R1,A
MOV R4,30H
MOV R5,31H
MOV R6,32H
MOV R7,33H
RET
;}
END
BUF1 EQU 2000H
BUF2 EQU 3000H
ORG 00H
AJMP _INIT_SYS
_INIT_SYS:
MOV SP,#80H
; R7R6R5R4/R3R2 = R7R6R5R4 ... R1R0
MOV R2,#00H
MOV R3,#0FH
MOV R4,#04H
MOV R5,#05H
MOV R6,#06H
MOV R7,#08H
LCALL _DIV
AJMP $
_DIV: ;{
CLR C
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
_DIV_LOOP:
CLR C
MOV A,R4
SUBB A,R2
MOV R4,A
MOV A,R5
SUBB A,R3
MOV R5,A
MOV A,R6
SUBB A,#0
MOV R6,A
MOV A,R7
SUBB A,#0
MOV R7,A
JC _DIV_END
_INC_SHANG:
CLR C
MOV A,30H
ADDC A,#1
MOV 30H,A
MOV A,31H
ADDC A,#0
MOV 31H,A
MOV A,32H
ADDC A,#0
MOV 32H,A
MOV A,33H
ADDC A,#0
MOV 33H,A
LJMP _DIV_LOOP
_DIV_END:
CLR C
MOV A,R2
ADDC A,R4
MOV R0,A
MOV A,R3
ADDC A,R5
MOV R1,A
MOV R4,30H
MOV R5,31H
MOV R6,32H
MOV R7,33H
RET
;}
END
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询