7.试编写无符号数双字节乘法程序 功能为:R2R3×R6R7→R3R4R5R60
问题详情
7.试编写无符号数双字节乘法程序,功能为:R2R3×R6R7→R3R4R5R60
参考答案
MUL22: MOV 30H,R6 ;保护R6
MOV A,R3 ;
MOV B,R7 ;
MUL AB ;R3×R7
MOV R6,A ;(R3×R7)低8位→R6
MOV R5,B ;(R3×R7)高8位→R5
MOV A,R2 ;
MOV B,R7 ;
MUL AB ;R2×R7
ADD A,R5 ;(R2×R7)低8位+(R3×R7)高8位
MOV R5,A ;(R2×R7)低8位+(R3×R7)高8位→R5
CLR A ;
ADDC A,B ;(R2×R7)高8位+(和进位)
MOV R4,A ;(R2×R7)高8位+(和进位)→R4
MOV A,R3 ;
MOV B,30H ;R6→B
MUL AB ;R3×R6
ADD A,R5 ;(R3×R6)低8位+(R2×R7)低8位+(R3×R7)高8位
MOV R5,A ;(R3×R6)低8位+(R2×R7)低8位+(R3×R7)高8位→R5
MOV A,R4 ;
ADDC A,B ;(R3×R6)高8位+(R2×R7)高8位+(和进位)
MOV R4,A ;(R3×R6)高8位+(R2×R7)高8位+(和进位)→R4
CLR A ;
RLC A ;
MOV R3,A ;和进位→R3
MOV A,R2 ;
MOV B,30H ;R6→B
MUL AB ;R2×R6
ADD A,R4 ;(R2×R6)低8位+(R3×R6)高8位+(R2×R7)高8位
MOV R4,A ;(R2×R6)低8位+(R3×R6)高8位+(R2×R7)高8位→R4
MOV A,R3 ;
ADDC A,B ;(R2×R6)高8位+(和进位)
MOV R3,A ;(R2×R6)高8位+(和进位)→R3
RET ;