彙編實驗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.
原始碼:
結果:
五、總結與體會
這次實驗更多,更復雜,我遇到的問題比以往都多,也學習了不少。