程序空间间接寻址方式访问程序空间有3种语法:∗AL、∗XAR7和∗XAR7++。说明分别见表3-25~表3-27。
表3-25 访问程序空间的∗AL语法说明
注:如果指令被重复执行,AL中的地址被复制到影子寄存器中,且每一次执行后值都会增加。这种寻址方式只能访问程序空间的低64KW空间。
实例:
XPREAD loc16,∗AL ;[loc16]=程序空间[0x3F:AL]
XPWRITE ∗AL,loc16 ;程序空间[0x3F:AL]=[loc16]
表3-26 访问程序空间的∗XAR7语法说明
注:如果指令被重复执行,只有在指令XPREAD和XPWRITE中,XAR7的地址被复制到影子寄存器中,且每一次执行后值都会增加。XAR7的内容不变。这种寻址方式只能访问程序空间的低64KW空间。对于其他指令,即使重复执行目的地址也不会改变。
指令实例:
MAC P,loc16,∗XAR7 ;ACC=ACC+P<<PM,P=[loc16]×程序空间[∗XAR7]
DMAC ACC:P,loc32,∗XAR7 ;ACC=([loc32].MSW×程序空间[∗XAR7].MSW)>>PM
;P=([loc32].LSW×程序空间[∗XAR7].MSW)>>PM(www.daowen.com)
QMACL P,loc32,∗XAR7 ;ACC=ACC+P>>PM
;P=([loc32]程序空间[∗XAR7])>>32
IMACL P,loc32,∗XAR7 ;ACC=ACC+P,P=([loc32]×程序空间[∗XAR7])<<PM
PREAD loc16,∗XAR7;[loc16]=程序空间[∗XAR7]
PWRITE ∗XAR7,loc16;程序空间[∗XAR7]=[loc16]
表3-27 访问程序空间的∗XAR7++语法说明
指令实例:
MAC P,locl6,∗XAR7++ ;ACC=ACC+P<<PM,P=[loc16]×程序空间[∗XAR7++]
DMAC ACC:P,loc32,∗XAR7++;ACC=([loc32].MSW×程序空间[∗XAR7++].MSW)>>PM
;P=([loc32].LSW×程序空间[∗XAR7++].MSW)>>PM
QMACL P,loc32,∗XAR7++;ACC=ACC+P>>PM,P=([loc32]×程序空间[∗XAR7++])>>32
IMACL P,loc32,∗XAR7++;ACC=ACC+P,P=([loc32]×程序空间[∗XAR7++])<<PM
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。