實驗三報告
學院 計軟院 專業 計算機科學與技術 年級 2017 級 班次 4班 姓名 任心怡 學號 20171308152
一、實驗目的
1. 掌握匯編語言源程序(8086 dos 匯編)編寫→匯編→鏈接→調試的方法
2. 加深對 1-4 章基礎知識的理解
二、實驗準備
1. 結合第 4 章課件和教材,學習/復習完整匯編源程序編寫→匯編→連接→運行→調試 的方法
2. 復習第 1-3 章以下基礎知識:
(1)寄存器用法 ① 通用寄存器 AX, BX,CX, DX ② 段寄存器 CS, DS, SS 和兩個特殊寄存器 IP, SP
(2)內存訪問,特別是多字節數據的存、取
(3)匯編指令用法,註意其合法使用形式 ① 數據傳送類指令:mov, push, pop ② 算術運算指令:add, sub ③ 轉移類指令:jmp
三、實驗步驟
練習1:
打開dosbox輸入edit進入頁面後輸入內容:
將源程序保存為t1.sam
推出後在dosbox下進行編譯鏈接和運行
運行結果:36
(2) 將 line4 和 line9 種寄存器 dl 的值分別修改為 0~9 中任何一個數字,重新匯編→ 連接→運行,觀察結果的變化。
重新編寫源程序,我分別把line4改成了5和line9改成了7,再通過編譯鏈接運行後得到結果為:57
(3) 用 debug 對生成的可執行文件 t1.exe 進行調試。
① 使用 r 命令查看。觀察寄存器 cx 的值是 多少;觀察寄存器 ds 和 cs 的值是多 少,它們之間是否滿足關系(cs)=(ds)+10H?
CS=076A DS=075A 滿足CS=DS+10H
② PSP(程序段前綴)的頭兩個字節是 CD 20, 用 debug 查看 PSP 的內容,驗證是否 如此。
③ 使用 u 命令對 t1.exe 進行反匯編,觀察反匯編得到的源代碼
使用 t 命令和 p 命令(遇到 int 命令時,用 p 命令)單步調試,觀察結果。
發現實驗結果:57
練習2:
輸入源程序代碼並保存
對 t2.asm 進行匯編、連接後,得到可執行文件 t2.exe。運行 t2.exe,觀察程序運行 結果,驗證是否在屏幕左上方出現紅色的數值 36。
運行證明有36在屏幕左上方
(2) 如果(1)結果得到驗證,重新打開 t2.asm,嘗試將源代碼中 line7 的 0433h→0432h, line10 的 0436h→0439h, 然後重新匯編、連接,得到可執行文件 t2.exe。使用 cls 命令清 屏後,再次觀察程序運行結果。
發現屏幕左上角出現了29 但是位置沒有變化
四:實驗總結
1.在進行編譯、鏈接時需要註意是 對t1.asm編譯時 t1後面需要加“;”
2.使用T命令和P命令運行指令是看見int命令時,需要使用P命令
3.通過改變源程序寄存器的數值可以相應修改運行結果。
實驗三報告