8051汇编一个乘法(不用MUL指令),请帮忙看看有没问题

ttneil 2006-05-04 12:38:08
题目:
用8051汇编写两个16bit unsinged乘法(不能用MUL指令),原数据摆在40h~43h(low high), 结果摆在IDATA80h~81h(low high)。

我的解答:
ORG 0000H
AJMP Main
ORG 0040H
Main: MOV 80H,#00H
MOV 81H,#00H
MOV R0,#00H
MOV A,40H
RRC A
JNC No;第一位不是1,不操作
MOV 80H,42H
MOV 81H,43H
JMP No
Loop: CJNE R0,#7,Next
MOV A,41H;查完乘法低字节后查乘法高字节
Next: CLR C
RRC A
JNC No
MOV R2,A;保存A
MOV A,R0
MOV R1,A
Mul2: CLR C
MOV A,42H
RLC A
MOV 82H,A
MOV A,43H
RLC A
MOV 83H,A
DJNZ R1,Mul2;16位数左移R0次存放在82H~83H(Low High)
ADD16: CLR C
MOV A,80H
ADD A,82H
MOV 80H,A
MOV A,81H
ADDC A,83H
MOV 81H,A;16位加法
MOV A,R2;还原A
No: INC R0
CJNE R0,#16,Loop
END

好像得不到理想结果,不知道错哪里?
...全文
230 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,458

社区成员

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

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