1. 程式人生 > >實驗報告:實驗三

實驗報告:實驗三

字節 每次 分享圖片 成對 png 偏移 過程 依次 代碼

練習一

assume cs:code
code segment
mov ah,2
mov dl,3
add dl,30h
int 21h

mov ah,2
mov dl,6
add dl,30h
int 21h

mov ah,4ch
int 21h
code ends
end

對以上代碼進行匯編、連接、調試、運行。結果如下:

技術分享圖片

結果為36

然後我將第四行和第九行的dl的值分別改為5和4繼續匯編、連接、調試、運行:

技術分享圖片

結果變為了54。

然後使用r命令查看cx、ds、cs的值發現滿足cs=ds+10h

技術分享圖片

然後用debug反匯編得出偏移地址0000到0015的為源代碼部分

技術分享圖片

再用d命令和r命令查看PSP的頭兩個字節驗證確實為CD 20。

技術分享圖片

然後用p和t命令單步調試,遇到int用p命令。如下圖

技術分享圖片

技術分享圖片技術分享圖片

返現依次輸出的是5和4(與之前改的一致)

練習二

assume cs:code
code segment
mov ax, 0b800h
mov ds, ax

mov bx,0
mov [bx],0333h

add bx,2
mov [bx],0336h

mov ax,4c00h
int 21h
code ends
end

對t2代碼進行匯編、連接、調試、運行。結果如下:

技術分享圖片

輸出紅色的36

技術分享圖片

將源代碼中line7的0433h改為0432h, line10 的 0436h改為0439h,然後進行匯編、連接、調試、運行:

技術分享圖片

結果如下輸出紅色29

技術分享圖片

試將源代碼中line7的0433h→0333h, line10 的 0436h→0336h,然後進行匯編、連接、調試、運行:

技術分享圖片

結果如下輸出藍綠色的36

技術分享圖片

總結感想:

通過本次實驗一我明白了計算機通過每次單個輸出dl的值來完成對字符的輸出(即輸出54需要輸出兩次)。

由於最後36顏色的改變是修改了寄存器中的高字節,改變數字修改的低字節,猜測高字節控制顏色,低字節控制數據。

熟悉了匯編中對稍微復雜的源代碼匯編、連接、調試、運行等的過程。

實驗報告:實驗三