|
| 采购元器件好去处--维库电子市场网推荐 |
| 技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
8051汇编一个乘法(不用MUL指令),请帮忙看看有没问题 |
| 来源:21ic 作者:ttneil 栏目:新手园地 |
| 8051汇编一个乘法(不用MUL指令),请帮忙看看有没问题 题目: 用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 好像得不到理想结果,不知道错哪里? |
| 1楼: | >>参与讨论 |
| 作者: maychang 于 2006-5-4 22:21:00 发布:
这样的例程 应该用软仿真检查。 |
|
| 2楼: | >>参与讨论 |
| 作者: ttneil 于 2006-5-4 22:27:00 发布:
仿真过还不行 我仿真过了,但是比较复杂。找不到原因 |
|
| 3楼: | >>参与讨论 |
| 作者: maychang 于 2006-5-5 10:55:00 发布:
不许用MUL指令 这个限制条件很不讲道理。 |
|
|
|
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |