什么是間接尋址?
閱讀:2110 發(fā)布時間:2021-4-28
S7-200的間接尋址與FX系列的變址寄存器的作用相同,用于修改操作數(shù)的地址,常用于循環(huán)指令。
使用間接尋址之前,首先應(yīng)創(chuàng)建一個指向初始地址的指針。指針為雙字值,用來存放另一個存儲器的地址,只能用變量存儲
器V、局部變量L或累加器作指針。雙字傳送指令“MOVD&VBO,VD4”將VBO的存儲器地址送到指針VD4中。
圖4-3中的&VBO表示VBO的地址,而不是VBO中的數(shù)據(jù)。值得注意的是只能裝入字節(jié)的地址,如果使用&VWO或&VDO,編程軟件將會自動改正為&VBO。
圖4-3中的指令“MOVW *VD4.VW8”表示將一個存儲器字中的數(shù)據(jù)傳送到VW8,這個存儲器字的地址在VD4中,這種尋址方式就是間接尋址。*VD4表示VD4是一個指針,’VD4是VD4所指的地址中的數(shù)據(jù)。雖然裝入指針的是字節(jié)地址,但是可以用指針來訪問字和雙字。
因為指針是32位數(shù)據(jù),為了存取下一個存儲單元的值,應(yīng)使用雙字指令來修改指針值,例如雙字加法(ADDD)或雙字加1 (INCD)指令。修改時記住需要調(diào)整的存儲器地址的字節(jié)數(shù):存取字節(jié)時,指針值加1;存取字時,指針值加2;存取雙字時,指針值加4