彙編實驗二

來源:互聯網
上載者:User

標籤:程式   alt   連續   資料   並且   單元   寫入   瞭解   記憶體   

(1)使用debug,將下面的程式段寫入記憶體,逐條執行

使用e命令修改 0021:0~0021:7資料,將連續8個位元組改為30H, 31H, 32H, 33H,34H,35H,36H,37H

用a命令寫入指令

用t命令逐條執行

得到資料:

mov ax,0021

mov ds,ax

mov ax,2000

mov ss,ax

mov sp,0100

mov ax,[0]        ;ax=3130H

add  ax,[2]        ;ax=6462H

mov bx,[4]        ;bx=3534H

add  bx,[6]        ;bx=6C6AH

push ax            ;sp=00FEH; 修改記憶體單元地址是2200:FE,內容為6462H

push bx            ;sp=00FCH; 修改記憶體單元地址是2200:FC,內容為6C6AH

pop  ax             ;sp=00FEH;ax=6C6AH

pop  bx             ;sp=0100H;bx=6462H

push [4]            ;sp=00FEH; 修改記憶體單元地址是2200:FE,內容為3534H

push [6]            ;sp=00FCH; 修改記憶體單元地址是2200:FC,內容為3736H

 

(2)觀察圖中實驗過程,分析:為什麼2000:0~2000:f中內容會發生改變

用a命令輸入指令

用e命令修改記憶體的內容

用r命令查看內容

並用t命令逐條執行,同時用d命令查看記憶體中的內容

觀察發現記憶體2000:0~2000:f中存放了cs和ip的值,並且位置改變

猜想:有可能是執行操作時修改了記憶體,至於原因不清楚,可能和棧有關

 

總結:

本次實驗更加困難,但加深了對於debug工具的認識,對於指令更加瞭解。

同時發現自己對於棧沒有足夠的認識,不能夠熟練掌握。但是知道了push和pop指令的用法。

彙編實驗二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.