8086指针寄存器
指針寄存器(BP,SP):
BP 寄存器:
8086? CPU 中的指針寄存器包括兩個,即 SP 和 BP ,在這里呢,我先只對 BP 寄存器做介紹,
因為 SP 寄存器實質上必須和 SS 段寄存器一起使用,所以,我將會把 SP 寄存器留到后面和 SS 段寄存器一起作介紹。
BP (Base Pointer)也就是基指針寄存器,它和其他的幾個用來進行尋址操作所使用的寄存器(還有 BX,SI,DI)沒有太大的區別,
關于 SI 和 DI 寄存器的下面請見下文。
首先,BP 寄存器作為通用寄存器的一種,說明其是可以暫存數據的,而后,BP 又不是數據寄存器,
也就意味著其不能分割成 2 個獨立的 8 位寄存器使用,
而后當以 […] 的方式訪問內存單元而且在 […] 中使用了寄存器 BP 的話,
那么如果在指令中沒有明確或者說是顯示的給出段地址時,
段地址則使用默認的 SS 寄存器中的值(BX,SI,DI 會默認使用 DS 段寄存器),
比如 DS:[BP] 則在這里明確給出了段地址位于 DS 中,
所以,這里代表的內存單元即是段地址為 DS ,偏移量為 BP 寄存器中的值的內存單元,
而如果單單是使用 [BP] 的話,則代表的內存單元是段地址為 SS,偏移量為 BP 寄存器中的值的內存單元。
并且 BP 寄存器主要適用于給出堆棧中數據區的偏移,從而可以方便的實現直接存取堆棧中的數據,
至于堆棧的話,會在后面的博文中介紹。
在 8086 CPU 中,只有 4 個寄存器可以以? […]? 的方式使用,這四個寄存器分別是 BX,SI,DI,BP。
下面的? Demo? 是?BX?寄存器在尋址中的使用:
MOV BP,0 MOV AX,[BP] ;將 SS:[BP] 代表的內存單元移入 AX 中 MOV AX,CS:[BP] ;將 CS:[BP] 代表的內存單元移入 AX 中 語句的執行過程如下:與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
- 上一篇: 8086数据寄存器介绍
- 下一篇: 8086变址寄存器