作业帮 > 综合 > 作业

51单片机实验:无符号双字节乘法运算子程序

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/13 19:14:02
51单片机实验:无符号双字节乘法运算子程序
1.内容:
R2R3中存放被乘数(R2高8位,R3低8位);
R6R7中存放乘数(R6高8位,R7低8位);
R4R5R6R7中存放积(R4为最高位,R7位最低位).
2.算法
(R2R3)*(R6R7)=((R2)*2+(R3))* ((R6) *2+(R7))
=(R2)(R6)*2+(R2)(R7)* 2+(R3)(R6)* 2+(R3)(R7)
设结果为四个字节为:abcd ;a为高位,d为低位.
51单片机实验:无符号双字节乘法运算子程序
以前搞的子程序库里的
(5) 标号:MULD 功能:双字节二进制无符号数乘法
入口条件:被乘数在R2、R3中,乘数在R6、R7中.
出口信息:乘积在R2、R3、R4、R5中.
影响资源:PSW、A、B、R2~R7 堆栈需求:2字节
MULD:MOV A,R3 ;计算R3乘R7
MOV B,R7
MUL AB
MOV R4,B ;暂存部分积
MOV R5,A
MOV A,R3 ;计算R3乘R6
MOV B,R6
MUL AB
ADD A,R4 ;累加部分积
MOV R4,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2 ;计算R2乘R7
MOV B,R7
MUL AB
ADD A,R4 ;累加部分积
MOV R4,A
MOV A,R3
ADDC A,B
MOV R3,A
CLR A
RLC A
XCH A,R2 ;计算R2乘R6
MOV B,R6
MUL AB
ADD A,R3 ;累加部分积
MOV R3,A
MOV A,R2
ADDC A,B
MOV R2,A
RET