1. 程式人生 > >彙編實驗5

彙編實驗5

一、實驗目的
1. 理解和掌握將資料、程式碼、棧放入不同段的程式的編寫和除錯
2. 理解具有多個段的彙編源程式對應的目標程式執行時,記憶體分配方式
二、實驗準備
1. 結合第 6 章教材和課件,複習第 6 章內容
2. 複習第 3 章「棧」的知識
三、實驗內容
教材 133 實驗 5
ps:
1. 實驗 5 相關提示見本文件最後一部分 「附:實驗 5 提示&說明」 」
2. 為提高實驗效率,我已將實驗 5 的程式框架準備好,可以從課程公郵→檔案中心→
實驗資料夾,下載實驗 5 程式框架。
四、實驗結論
實驗任務(1)~(4),直接在教材上填寫實驗後通過執行、除錯觀察到的結果,以及由此得
到的結論,以拍照或直接在部落格中錄入方式,給出填寫的結論。對結論得出的過程及除錯過
程的檢查,採用隨機抽點現場操作演示並回答的方式檢查。
實驗任務(5),要求在部落格中給出如下內容:

1.過程:

debug:

結果:

可得data:23 01 56 89 07 bc 0a ef 0d ed 0f ba 0c 87 09

                  cs=076c, ss=076b,ds=076a

data段地址: x-2    stack段地址: x-1


2.主要步驟與實驗一相同

debug過程:

結果:

data:23 01 56 04

cs=076c ss=076b ds=076a

data段段地址:x-2,stack段段地址:x-1

實際佔有的空間為:((N+15)/16)*16

3.

過程:(可能是我操作不當?g命令老崩潰)

結果:

data:23 01 56 04

cs=076a ss=076e ds=076d

data段段地址:x+3,stack段段地址:x+4

4.

只有3能正確執行。因為1,2前端都是資料段,不指明開始段時會被當作程式碼段。

5.

原始碼:

過程:

前後對比,成功相加。

 6.

原始碼:

 

結果:

 

五、總結與體會

這次實驗更多,更復雜,我遇到的問題比以往都多,也學習了不少。