单片机汇编语言。编写对一个多字节数乘以10的运算子程序
2个回答
展开全部
其实这个可以分解为:x*10=x*8+x*2,相当于x<<3+x<<1;即,这个数左移三位加左移一位。
输入:R0,N,即首字节地址和位数
MUL10:
MOV A,R0
MOV B,A
ADD A,#10H
MOV R1,A
MOV A,@R0
MOV R2,#N
MOV R3,#3
CLR 00H
MUL100:
CLR C
MUL101:
RLC A
MOV @R0,A
JB 00H,MUL1011
MOV @R1,A
INC R1
MUL1011:
INC R0
DJNZ R2,MUL101
CLR A
RLC A
MOV @R0,A
MOV @R1,A
MOV A,B
MOV R0,A
ADD A,#10H
MOV R1,A
SETB 00H
DJNZ R3,MUL100
MOV R2,#(N+1)
CLR C
MUL102:
MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,MUL102
RET
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询