2.4.3 尋址方式
2.4.3 尋址方式
1. 直接尋址
直接尋址是在指令中直接使用存儲(chǔ)器或寄存器的元件名稱(區(qū)域標(biāo)志)和地址編號(hào),直接到指定的區(qū)域讀取或?qū)懭霐?shù)據(jù)。有按位、字節(jié)、字、雙字的尋址方式,如圖2-8所示。

2. 間接尋址
間接尋址時(shí)操作數(shù)并不提供直接數(shù)據(jù)位置,而是通過使用地址指針來存取存儲(chǔ)器中的數(shù)據(jù)。在S7-200中允許使用指針對(duì)I、Q、M、V、S、T、C(僅當(dāng)前值)存儲(chǔ)區(qū)進(jìn)行間接尋址。
(1)使用間接尋址前,要先創(chuàng)建一指向該位置的指針。指針為雙字(32位),存放的是另一存儲(chǔ)器的地址,只能用V、L或累加器AC作指針。生成指針時(shí),要使用雙字傳送指令(MOVD),將數(shù)據(jù)所在單元的內(nèi)存地址送入指針,雙字傳送指令的輸入操作數(shù)開始處加&符號(hào),表示某存儲(chǔ)器的地址,而不是存儲(chǔ)器內(nèi)部的值。指令輸出操作數(shù)是指針地址。例如:MOVD &VB200,AC1指令就是將VB200的地址送入累加器AC1中。
(2)指針建立好后,利用指針存取數(shù)據(jù)。在使用地址指針存取數(shù)據(jù)的指令中,操作數(shù)前加“*”號(hào)表示該操作數(shù)為地址指針。例如:MOVW *AC1 AC0 //MOVW表示字傳送指令,指令將AC1中的內(nèi)容為起始地址的一個(gè)字長(zhǎng)的數(shù)據(jù)(即VB200,VB201內(nèi)部數(shù)據(jù))送入AC0內(nèi)。如圖2-9所示。
圖2-9 間接尋址










