<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 匯編入門學(xué)習(xí)筆記 (二)—— 寄存器(內(nèi)存訪問)、棧

          匯編入門學(xué)習(xí)筆記 (二)—— 寄存器(內(nèi)存訪問)、棧

          作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
          瘋狂的暑假學(xué)習(xí)之 匯編入門學(xué)習(xí)筆記 (二)

          本文引用地址:http://www.ex-cimer.com/article/201611/317776.htm

          參考:《匯編語言》 王爽 第三章

          一、寄存器內(nèi)存訪問

          1.DS和[address]

          DS 數(shù)據(jù)段寄存器,用來存放數(shù)據(jù)段地址

          [address] 用來表示數(shù)據(jù)段的偏移地址

          同樣跟CS一樣,不可以通過 mov ds, 1000 給ds賦值

          要通過通用寄存器ax等。

          例如:

          mov ax, 1000

          mov ds, ax

          mov al, [0]

          把1000:0的內(nèi)容存進(jìn)al

          mov bx, 1000

          mov ds, bx

          mov [0], al

          把a(bǔ)l寫進(jìn)1000:0中

          因?yàn)閍x、bx、cx是16為的,內(nèi)存單元是8為的,所以 mov ax, [0]會(huì)一次付給ax [1]跟[0]中的內(nèi)容

          例如:

          如果內(nèi)存情況為

          10000H 11

          10001H 22

          10002H 33

          10003H 44

          ........

          --------------------------------

          mov ax, 1000

          mov ds, ax

          mov ax [0]

          mov bx [2]

          mov cx [1]

          這上面運(yùn)行后 ax=2211H 、bx=4433H、cx=3322H

          mov ax,1000

          mov ds, ax

          mov ax, 1234

          mov [0], ax

          這上面運(yùn)行后內(nèi)存內(nèi)容變?yōu)?/p>

          10000H 34

          10001H 12

          .........

          2. CPU

          相關(guān)寄存器:

          ss: 記錄棧的段地址

          sp:記錄棧的段地址的偏移地址

          相關(guān)指令:

          push 入棧 如 push ax 表示將寄存器ax的內(nèi)容寫入棧

          pop 出棧 如 pop ax 表示從棧頂取出數(shù)據(jù)送入ax

          初始時(shí),sp指向棧低的下一個(gè)單元的地址,每次push,sp減2,pop,sp加2

          例如:

          將10000H~1000FH這段內(nèi)存當(dāng)做棧來用

          為了10000H~1000FH這段內(nèi)存當(dāng)做棧來用,要設(shè)置 ss=1000 sp=0010(棧底的下一個(gè)單元的地址)

          如果內(nèi)存內(nèi)容如下:

          ---------------------------

          10000H

          ..........

          1000CH

          1000DH

          1000EH

          1000FH

          10010H <------- sp

          ---------------------------

          mov ax,0123

          push ax

          后內(nèi)存內(nèi)容如下:

          ---------------------------

          10000H

          ..........

          1000CH

          1000DH

          1000EH

          1000FH 23 <------- sp

          10010H 01

          ---------------------------

          pop bx

          后bx=0123H內(nèi)存內(nèi)容如下:

          ---------------------------

          10000H

          ..........

          1000CH

          1000DH

          1000EH

          1000FH

          10010H <------- sp

          ---------------------------

          3.CPU 棧頂越界

          8086CPU 保證我們對棧的操作不會(huì)越界。也就說,8086 CPU 只知道棧頂在何處,不知道棧底和??臻g的大小。



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();