80C51的双字节无符号BCD码乘法子程序分析
来源:互联网 发布:八爪鱼数据采集器教程 编辑:程序博客网 时间:2024/04/27 18:21
(6) 标号: MUL2 功能:双字节二进制无符号数平方
(A+B)^2=A*A+B*B+2*A*B
(90+9)^2=90*90+9*9+2*90*9=8100+1620+81=9801
99
99
--------
891
+ 891
--------
9801
9 9
入口条件:待平方数在R2、R3中
出口信息:结果在R2、R3、R4、R5中。
影响资源:PSW、A、B、R2~R5 堆栈需求: 2字节
MUL2: MOV A,R3 ;计算R3平方
MOV B,A
MUL AB ;9*9=81
MOV R4,B ;暂存部分积高位,R4=0
MOV R5,A ;R5=81
MOV A,R2 ;计算R2平方
MOV B,A
MUL AB ;9*9=81,A=81,B=0
XCH A,R3 ;暂存部分积,并换出R2和R3 ,A=9,R3=81
XCH A,B ;A=0,B=9
XCH A,R2 ;A=9,R2=0
MUL AB ;计算2×R2×R3 ,9*9=81,A=81,B=0
CLR C
RLC A ;A=81*2=162
XCH A,B ;A=0,B=162
RLC A ;A=0*2=0
JNC MU20
INC R2 ;累加溢出量
MU20: XCH A,B ;累加部分积 A=162,B=0
ADD A,R4 ;162+0=162
MOV R4,A ;R4=162
MOV A,R3 ;A=81
ADDC A,B ;81+0+0=81
MOV R3,A ;R3=81
CLR A ;A=0
ADDC A,R2 A=0
MOV R2,A ;R2=0
RET
R2=0,R3=81(51H),R4=162(A2H),R5=81(51H)
结果:R2R3R4R5(BCD码)=R2*1000+R3*100+R4*10+R5
=81*100+162*10+81
=9801
- 80C51的双字节无符号BCD码乘法子程序分析
- PIC单片机实现双字节无符号数的乘法
- 80x86 汇编语言:组合 BCD 码的乘法
- C51单片机的压缩BCD码相加程序
- PIC单片机实现双字节无符号数的除法
- 字节长度 及 有符号数 无符号的计算
- 读取数字的子程序—小于65536的无符号数
- 将16位无符号整数转化为BCD码存放在数组中
- 将一个字节存储的2位BCD码解码
- 关于51单片机双字节(带有小数)无符号除法的问题
- Java中字节与无符号数之间的转换
- Java中字节与无符号数之间的转换
- android输出8位的无符号字节0-255
- PIC单片机实现双字节无符号数加减法
- 分别写出有符号和无符号1字节,2字节,4字节所能表示的整数范围
- 16位无符号数乘法汇编
- 汇编程序:32位无符号数乘法
- 80x86汇编:将AL中的8位无符号数转换为压缩型BCD数放入AX
- 名言警句
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- Ruby Console 插件 --- Hirb
- Silverlight输入数据验证系列二
- T-SQL入门攻略之7-常見系統函數
- 80C51的双字节无符号BCD码乘法子程序分析
- Stream关于玩家硬件的调查资料
- 新浪盈利模式
- 如何在c#中进行db2数据表的导出
- T-SQL入门攻略之8-數據庫文件
- unix设置master和slaver之间无密码访问 ssh
- T-SQL入門攻略之9-创建与查看数据库
- js巧用qq接口得到当前IP
- T-SQL入門攻略之10-修改数据库alter database