實驗一:用匯編指令編碼和除錯
四、實驗結論
1. 實驗任務1 自行練習,掌握工具用法。此部分無需寫實驗結論。 如練習中遇到、發現問題,使用搜索引擎,以及,和同學討論後,都暫時未能得到解決或釋疑,可以寫 入這一部分。共大家一起討論。
2. 實驗任務2 給出使用d命令檢視生產時期的截圖 給出使用e命令修改生產日期所在記憶體單元的截圖,以及,修改後,再次使用d命令檢視的截圖 結論:能否修改,以及,原因分析
結論:使用e命令無法修改電腦記憶體中的生產日期資料,因為無法修改視訊記憶體中的內容。
3. 實驗任務3 給出在debug中使用e命令修改記憶體單元的命令,及,效果截圖 給出在debug中使用f命令批量填充記憶體單元的命令,及,效果截圖 嘗試修改記憶體單元,或,資料後的效果截圖
4. 實驗任務4 根據在debug環境中除錯觀察結果,填空並回答問題。
-a
mov ax, 20
mov ds, ax
mov ss, ax
mov sp, 30
push [0] ; 執行後,暫存器(sp) = __002E__
push [2] ; 執行後,暫存器(sp) = __002C_
push [4] ; 執行後,暫存器(sp) = _002A___
push [6] ; 執行後,暫存器(sp) = __0028__
pop [6] ; 執行後,暫存器(sp) = _ 002A___
pop [4] ; 執行後,暫存器(sp) = __002C__
pop [2] ; 執行後,暫存器(sp) = __002E__
pop [0] ; 執行後,暫存器(sp) = __0030__
問題一: 邏輯地址是0020:0030,實體地址是00230H
問題二:
問題三:
問題四:
5. 實驗任務5
問題一:
沒有暫停,mov sp,30 在mov ss,ax後執行
問題二:
進棧時遵守後進先出的原則,並且低位在前
6. 實驗任務6
assume cs:code
code segment
start:
mov cx, 10
mov dl, '0'
s: mov ah, 2
int 21h
add dl, 1
loop s
mov ah,4ch
int 21h
code ends
end start
7. 實驗任務7
assumecs:code
codesegment
movax,cs
movds,ax
movax,0020h
moves,ax
movbx,0
mov cx,cx-5
s: moval,[bx]
moves:[bx],al
incbx
loops
movax,4c00h
int21h
codeends
end
結論:已經把task7.asm中line3-line12的程式碼複製到了目標記憶體 空間。
五、實驗總結
通過本次實驗,更加熟悉了Debug的使用,學習並使用了各種命令,以及使用masm、link,彙編、連結。