结构推理
编写计算下式的程序,设乘积的结果均小于255,A,B值分别存放在片外RAM的2001H和2002H单元中,结果存于2000H单元中。
(A+B*(A+B)+10 若(A+B)*(A+B)〈 10
Y=(A+B)*(A+B) 若(A+B)*(A+B)=10
(A+B)*(A+B)-10 若(A+B)*(A+B) 〉10
【正确答案】ORG 0000H
LJMP START
ORG 0030H
START: MOV DPTR,#2001H
MOVX A,@DPTR
MOV 30H,A
MOV DPTR,#2002H
MOVX A,@DPTR
ADD A,30H
MOV B,A
MUL AB
MOV R1,A
CJNE A,#10,NET1
MOV DPTR,#2000H
MOVX @DPTR,A
SJMP NET3
NET1: JNC NET2
CLR C
MOV A,R1
SUBB A,#10
MOV DPTR,#2000H
MOVX @DPTR,A
SJMP NET3
NET2: MOV A,R1
ADD A,#10
MOV DPTR,#2000H
MOVX @DPTR,A
NET3: SJMP $
END
【答案解析】