MOV R2,#0AH ;--打算從TAB3表中,查出第十個字,即:6758H
TB3: MOV A,R2
ADD A,R2 ;--A乘以2,因為,各個字,地址相差為2
MOV R3,A ;--暫存
ADD A,#6 ;--加上偏移量
MOVC A,@A+PC ;--查出第壹字節,67H
XCH A,R3 ;--執行上壹條查表時,PC,為此處的地址
;-------此處,和TAB3,相差6字節,故此,在前面加上了6
ADD A,#3 ; --再加壹個偏移量
MOVC A,@A+PC ;--查出第二字節,58H
MOV R4,A ;--執行上壹條查表時,PC,為此處的地址
;-------此處,和TAB3,相差2字節,又因為查第二字節,故此,在前面加上了3
RET
TAB3:DW 1520,3721,42645,7580
DW 3483,32657,883,9943
DW 10000,40511,6758H,8931
DW 4468,5871,13284,27808
END
計算偏移量,要用每條指令的字節數來計算。
先要寫出機器碼,才行。