我的程序为什么算出来的结果不对?您能帮我查一下错吗?

XingXing2004 2004-01-02 08:12:25
多字节无符号数除法计算程序:
编制说明:当除数的字节数少于被除数的字节数时,则将除数的高位字节为零!
(1)入口条件:R0(被除数的低位字节地址指针);R1(非零除数的地位字节地址指针) ;R2(被除数的字节数)
(2)出口:R0(商的低位字节地址指针);R1(商的字节数)

MOV 30H,#0FFH
MOV 31H,#0FFH
MOV 32H,#0FFH
MOV 33H,#0FFH
MOV 34H,#22h
mov 35h,#22h
mov 36h,#11h
mov 37h,#11h
MOV R0,#30H
MOV R1,#34H
MOV R3,#04H
DODIV: MOV A,R0 ;复制保存地址指针
MOV R4,A
MOV A,R1
MOV R5,A
MOV A,R3
MOV R7,A
MOV A,R0
ADD A,R3
MOV R6,A ;部分余低字节地址指针
MOV R1,A
LP0: MOV @R1,#00H ;部分余单元清零
INC R1
DJNZ R3,LP0
MOV A,R7 ;移位字节数
ADD A,R7
MOV R2,A
MOV B,#04H
MUL AB
LP1: PUSH ACC
MOV A,R2
MOV R3,A
MOV A,R4
MOV R1,A
CLR C
LP2: MOV A,@R1 ;移位
RLC A
MOV @R1,A
INC R1
DJNZ R3,LP2
NEXT: MOV A,R6
MOV R0,A
MOV A,R5
MOV R1,A
MOV A,R7
MOV R3,A
CLR C
LP3: MOV A,@R0 ;部分余减除数
SUBB A,@R1
PUSH ACC
INC R0
INC R1
DJNZ R3,LP3
MOV A,R7
MOV R3,A
JC SMALL
MOV A,R4
MOV R0,A
INC @R0 ;商加1
MOV A,R6
ADD A,R7
DEC A
MOV R0,A
LP4: POP ACC ;存新余数
MOV @R0,A
DEC R0
DJNZ R3,LP4
SJMP NEXT
SMALL:POP ACC ;恢复栈指针
DJNZ R3,SMALL
POP ACC
DEC A ;移位次数减1
JNZ LP1
I504: MOV A, R6 ;四舍五入
ADD A,R7
DEC A
MOV R0,A
MOV R2,A
MOV A,@R0
JB 07H,ADD1
MOV A,R6
MOV R1,A
MOV A,R7
MOV R3,A
CLR C
LP5: MOV A,@R1
RLC A
MOV @R1,A
INC R1
DJNZ R3,LP5
MOV A,R2
MOV R0,A
MOV A,R7
MOV R3,A
ADD A,R5
DEC A
MOV R1,A
LP6: CLR C
MOV A,@R0
SUBB A,@R1
JC RETURN
JNZ ADD1
DEC R0
DEC R1
DJNZ R3,LP6
ADD1: MOV A,R4 ;商加1
MOV R1,A
MOV A,R7
MOV R3,A
SETB C
LP7: MOV A,@R1
ADDC A,#00H
MOV @R1,A
DJNZ R3,LP7
RETURN:MOV A,R4 ;恢复地址指针
MOV R0,A
MOV A,R7
MOV R3,A
RET

END
这段程序的运行结果怎么不对,能帮我改一下吗?
请问:定点运算的程序商是如何能看出是小数的?
比如:1/3=0。333等
...全文
31 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2004-01-03
  • 打赏
  • 举报
回复
这是什么机器的汇编语言呀?

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧