8086变址寄存器
變址寄存器(SI,DI):
首先,變址寄存器和上面介紹的指針寄存器(也就是 BP 和 SP),它們的功能其實(shí)都是用于存放某個(gè)存儲單元地址的偏移,
或者是用于某組存儲單元開始地址的偏移,即作為存儲器指針使用,當(dāng)然,由于變址寄存器和指針寄存器都是屬于通用寄存器,
所以它們也可以保存算術(shù)結(jié)果或者說是具有暫存數(shù)據(jù)的功能,但是因?yàn)樗鼈儾皇菙?shù)據(jù)寄存器,所以無法分割成 2 個(gè)獨(dú)立的 8 位寄存器使用,
關(guān)于變址寄存器和指針寄存器的詳細(xì)使用,筆者將會在下一篇博文中作出最詳細(xì)的介紹,
SI (Source Index) 是源變址寄存器,DI (Destination Index) 即是目的變址寄存器,
8086 CPU 中的 SI 寄存器和 DI 寄存器其實(shí)和 BX 寄存器的功能是差不多的,
只不過 SI 寄存器和 DI 寄存器均不是數(shù)據(jù)寄存器,所以它們不能夠拆分為 2 個(gè)獨(dú)立的 8 位寄存器,
而這也就是 SI 寄存器和 DI 寄存器與BX 寄存器所不同的地方,
既然,SI,DI 兩個(gè)寄存器的功能和 BX 差不多,自然,SI 和 DI 中也是可以暫存一般性數(shù)據(jù)的,
同時(shí),通過使用 SI 和 DI 寄存器也是可以用來完成尋址操作的。
比如下面的代碼就是可行的:
MOV SI,0 ;初始化偏移地址為 0 MOV AX,[SI] ;將段地址為 DS 偏移地址為 SI 的內(nèi)存單元中的值移入 AX 中 MOV AX,DS:[SI] ;將段地址為 DS 偏移地址為 SI 的內(nèi)存單元中的值移入 AX 中 MOV AX,SS:[SI] ;將段地址為 SS 偏移地址為 SI 的內(nèi)存單元中的值移入 AX 中MOV DI,0 ;初始化偏移地址為 0 MOV AX,[DI] ;將段地址為 DS 偏移地址為 DI 的內(nèi)存單元中的值移入 AX 中 MOV AX,DS:[DI] ;將段地址為 DS 偏移地址為 DI 的內(nèi)存單元中的值移入 AX 中 MOV AX,SS:[DI] ;將段地址為 SS 偏移地址為 DI 的內(nèi)存單元中的值移入 AX 中總結(jié)
- 上一篇: 8086指针寄存器
- 下一篇: 8086 DS 和 ES 寄存器