A-A+

试用子程序求下列多项式(设Y R S T均为无符号数 分别存放在内RAM 30H~33H 且

2022-08-13 22:19:11 问答库 阅读 199 次

问题详情

试用子程序求下列多项式(设Y、R、S、T均为无符号数,分别存放在内RAM 30H~33H,且R、S、T、(R+S)、(S+T)、(T+R)均≤15,Y<256)。

参考答案

Y EQU 30H ;
R EQU 31H ;
S EQU 32H ;
T EQU 33H ;
FML1:MOV A,R ;R→A
LCALL SQR ;求R2
MOV B,A ;R2→B
MOV A,S ;S→A
LCALL SQR ;求S2
ADD A,B ;R2+S2
MOV B,A ;R2+S2→B
MOV A,T ;T→A
LCALL SQR ;求T2
ADD A,B ;R2+S2+T2
MOV Y,A ;R2+S2+T2→Y
RET ;
SQR: INC A ;加上地址调整值(RET与TAB间差值为1字节)
MOVC A,@A+PC;
RET ;
TAB:DB 0,1,4,9,16,25,36,64,81,100,121,144,169,196,225;平方表$MOV A,R ;读R
ADD A,S ;(R+S)→A
MOV DPTR,#TAB ;置平方表首址
MOVC A,@A+DPTR ;(R+S)2→A
MOV B,A ;(R+S)2→B
MOV A,S ;读S
ADD A,T ;(S+T)→A
MOVC A,@A+DPTR ;(S+T)2→A
ADD A,B ;(R+S)2+(S+T)2→A
MOV B,A ;(R+S)2+(S+T)2→B
MOV A,T ;读T
ADD A,R ;(T+R)→A
MOVC A,@A+DPTR ;(T+R)2→A
ADD A,B ;(R+S)2+(S+T)2+(T+R)2→A
MOV Y,A ;(R+S)2+(S+T)2+(T+R)2→Y
RET ;
TAB:DB 0,1,4,9,16,25,36,64,81,100, 121,144,169,196,225;平方表

考点:多项式,符号