代码改变世界

汇编实验3

2018-11-13 20:20  漠然飘过  阅读(217)  评论(0编辑  收藏  举报

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