51单片机汇编语言。求两个数的平方和。

求30H、31H的平方和,把结果存入40~42h中。多谢解答

第1个回答  2013-12-16
AAA EQU 30H
BBB EQU 31H
CCC EQU 40H
ORG 8000H
MAIN: MOV R3,#0 ;清零
MOV A,AAA
ACALL SQRT ;调用求平方子程序
MOV R3,A
MOV A,BBB
ACALL SQRT ;调用求平方子程序
ADD A,R3
MOV R3,A
MOV CCC,R3
SJMP $
SQRT: MOV DPTR,#TAB
MOVC A,@A+DPTR
RET
TAB: DB 0,1,4,9,16
DB 25,36,49,64,81
END
第2个回答  2013-12-17
QH:
MOV A,30H
MOV B,A
MUL AB
MOV 40H,A
MOV 41H,B
MOV A,31H
MOV B,A
MUL AB
ADD A,40H
MOV 40H,A
XCH A,B
ADDC A,41H
MOV 41H,A
MOV 42H,#0
JNC QHE
MOV 42H,#1
QHE:
RET
第3个回答  2013-12-16
PFH:
MOV A, 30H
MOV B, A
MUL AB

MOV 40H, A
MOV 41H, B

MOV A, 31H
MOV B, A
MUL AB

ADD A, 40H
MOV 40H, A
MOV A, B
ADDC A, 41H
MOV 41H, A

CLR A
ADDC A, #0
MOV 42H, A

RET追问

请问 ADDC A,#0啥意思?

追答

加上进位。

CLR A ;A = 0
ADDC A, #0 ;A + 0 + Cy ---->>A
MOV 42H, A ;保存

本回答被提问者和网友采纳
相似回答