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命令。