汇编语言中,DS与BX有何区别?怎么搭配使用?(BX是通用寄存器)
首先注意:BX是一個通用寄存器,里面存放的不一定就是一個基地址,也可以放偏移量或者其他臨時數據。
通用寄存器:A/B/C/D X 4個,SP,BP,SI,DI 4個
專用寄存器:SP,IP和FLAGS 3個16位寄存器。
問:既然DS存放的就是數據段的基地址,為何BX還要存放基地址?
答:DS是段寄存器 一般放的是數據段的段地址
至于BX 是一個靈活的寄存器 可以用它來做許多事情 當然也可以用來當指針 樓主所謂數據段的基地址是這個段的起始地址 要說他是基地址也沒有錯 但是bx里放的是某個字節或字的地址用[bx]來訪問。DS放段地址,BX是通用寄存器.
疑問:SP到底是通用寄存器還是專用寄存器?
答:好像都可以,Intel為什么把SP設計成通用寄存器,這樣我也覺得有些奇怪。
SP除了作棧頂指針外,你還可以用SP來完成加減乘除等算術和邏輯操作。
當然這樣做的前提是這些操作過程中不會用到堆棧。
通常不會用到SP的通用功能。不過我倒是見到過,就是在一些加密用的殼里這樣用,
來達到反跟蹤效果
問:bx寄存器與ds段寄存器的區別. 為什么說,用BX做基地址的指令,默認采用ds段寄存器指向的數據段?
答:ds與bx配合,es與dx配合,cx作為計數器。這既是cpu硬件設計使然,也是軟件設計的標準用法,就如圍棋中的定式,你必須這么用。bx是提供偏移地址。
問:匯編語言中[bx],和(bx)的區別
(bx)是僅僅指bx寄存器的內容,書寫好看明了;
[bx]是指偏移地址,指的是以寄存器BX的內容為偏移的路徑大小,[bx]:也就是BX的內容為偏移地址,可以加上16d*ds,得到內存地址去內存中取數據。
[bx]是指偏移地址,默認段地址為ds
(bx)是描述語句(這樣寫是為了解釋方便,指令當中可不能這樣寫)是指bx中的內容,
部分整理自百度知道
總結
以上是生活随笔為你收集整理的汇编语言中,DS与BX有何区别?怎么搭配使用?(BX是通用寄存器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SS, SP, BP 三个寄存器的不同和
- 下一篇: 汇编语言中的乘除法用到的寄存器问题(较详