網(wǎng)站開發(fā)估價鄭州seo外包
A32指令集中包含多數(shù)據(jù)傳輸指令LDM和STM,也就是單條指令可以傳輸多個寄存器的值與內(nèi)存交互,這對于數(shù)據(jù)塊傳輸以及寄存器的壓入棧很有幫助。LDM和STM指令可分別用于實(shí)現(xiàn)堆棧的pop和push操作。對于堆棧操作,基寄存器通常是堆棧指針(SP)。
LDM和STM可以與幾種類型的堆棧后綴一起使用,形成不同的尋址模式。
- Descending:堆棧向下增長,從一個高地址開始,并進(jìn)展到一個較低的地址(降序堆棧);
- Ascending:堆棧向上增長,從一個低地址開始,并進(jìn)展到一個較高的地址(升序堆棧);
- Full:堆棧指針指向堆棧中非空的最后一項(一個非空堆棧) ;
- Empty:堆棧指向堆棧中的下一個可用空間(一個空堆棧);
為了方便程序員,可以使用面向堆棧的后綴來代替自增或自減。下表展示了面向堆棧的后綴及其等效的尋址模式后綴:
下圖為FD/ED/FA/EA模式的示意。
下表列出了LDM和STM帶有堆棧后綴的指令:
下表列出了不同尋址模式如何計算指令地址。