MOV A,30H ;取數到累加器A
MOV DPTR,#SQTAB ;DPTR取得數據表的首地址
MOVC A,@A+DPTR ;查表,取平方值送累加器A
MOV 31H,A ;存結果
SJMP $
SQTAB: DB 0,1,4,9,16,25,36,49,64,81
;定義平方表
END
也都是在網上找的,自己學過,但是也忘了點
利用查表的方法編寫Y= X2 (X=0,1,2…9 )的程序。
編程說明: 設變量X的值存放在內存30H單元中,變量Y的值存入內存31H單元。先用遠查表指令MOVC A, @A+DPTR 編寫程序(參考程序1);再用近查表指令MOVC A , @A+PC 編寫程序(見參考程序2)。
參考程序1
ORG 1000H
START: MOV A , 30H
MOV DPTR , #TABLE
MOVC A , @A+DPTR
MOV 31H , A
TABLE: DB 0 , 1 , 4 , 9 , 16
DB 25 , 36 , 49 , 64 , 81
END
參考程序2:
ORG 1000H
START: MOV A , 30H
ADD A , 02H
MOVC A , @A+PC
MOV 31H , A
DB 0 , 1 , 4 , 9 , 16
DB 25 , 36 , 49 , 64 , 81
END