1、實驗目的框架
1. 理解和掌握將數據、代碼、棧放入不一樣段的程序的編寫和調試 2. 理解具備多個段的彙編源程序對應的目標程序執行時,內存分配方式spa
2、實驗準備3d
1. 結合第6章教材和課件,複習第6章內容 2. 複習第3章「棧」的知識調試
3、實驗內容code
教材133實驗 5 ps: 1. 實驗5相關提示見本文檔最後一部分「附:實驗5提示&說明」 2. 爲提升實驗效率,我已將實驗 5 的程序框架準備好,能夠從課程公郵→文件中心→ 實驗文件夾,下載實驗5程序框架。blog
實驗任務(1)內存
在程序編譯、鏈接完成以後,依次使用R命令,U命令,G命令,D命令進行調試文檔
1. CPU執行程序,程序返回前,data段中的數據爲:0123H, 0456H, 0789H, 0abcH, 0defH, 0fedH, 0cbaH, 0987H編譯器
2. CPU執行程序,程序返回前,cs=076C ,ss=076B ,ds=076Aio
3. 程序加載後,code段的段地址爲X,則data段的段地址爲: X-2 ,stack段的段地址爲: X-1
實驗任務(2)
1. CPU執行程序,程序返回前,data段中的數據爲:0123H, 0456H
2. CPU執行程序,程序返回前,cs=076C ,ss=076B ,ds=076A
3. 設程序加載後,code段的段地址爲X ,則data段的段地址爲:X-2 ,stack段的段地址爲:X-1
4. 對於以下定義的段,若是段中的數據佔N個字節則程序加載後,該段實際佔有的空間爲: (N/16+1)*16
實驗任務(3)
1. CPU執行程序,程序返回前,data段中的數據爲:0123h, 0456h
2. CPU執行程序,程序返回前,cs=076A ,ss=076E ,ds=076D
程序加載後,code段的段地址爲X,則data段的段地址爲:X+3 ,stack段的段地址爲:X+4
實驗任務(4)
實驗(3)能夠正確執行,由於去掉start以後,編譯器便會按順序(從上到下)執行程序。
實驗任務(5)
輸入代碼後,編譯,鏈接成功
實現了數據的相加
實驗任務(6)
完成數據的逆序存儲
總結體會
經過使用段,可以更加清晰的解決問題。