1.運行如下代碼:
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
?進行匯編運行之后結果為:
?
將第四行和第九行的寄存器dl的值修改之后代碼如下:
assume cs:code
code segment
?mov ah,2
?mov dl,4
?add dl,30h
?int 21h
?
?mov ah,2
?mov dl,9
?add dl,30h
?int 21h
?
?mov ah,4ch
?int 21h
code ends
end
結果就是上圖的36變成了49
接著用命令進行反匯編,如下:
從而看出cx=0016h,cs=0770h,ds=0760h,cs與ds滿足關系:(cs)=(ds)+10h。
用t,p命令進行單步調試:
?
?
?2,運行如下代碼:
assume cs:code
code segment
?mov ax,0b800h
?mov ds,ax
?
?mov bx,0
?mov ax,0433h
?mov[bx],ax
?
?add bx,2
?mov ax,0436h
?mov[bx],ax
?
?mov ax,4c00h
?int 21h
code ends
end
進行匯編運行:
?
?將以上代碼的第七行的0433h改為0333h,第十行的436h改為0336h之后如下:
assume cs:code
code segment
?mov ax,0b800h
?mov ds,ax
?
?mov bx,0
?mov ax,0333h
?mov[bx],ax
?
?add bx,2
?mov ax,0336h
?mov[bx],ax
?
?mov ax,4c00h
?int 21h
code ends
end
結果上圖的紅色36變成了藍色的36.
?
3.體會
今天的實驗使用了masm for windows集成環境,開始不太會用,但是慢慢的還是是熟悉了
在用t命令單步執行的時候,遇到int 21的時候,要使用p命令。
?