码迷,mamicode.com
首页 > 其他好文 > 详细

实验三 编程、编译、连接、跟踪

时间:2018-11-18 21:08:44      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:page   exe   总结   info   tle   str   出现   反汇编   you   

四.实验结论

练习一:

(1)编写汇编程序:

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

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

mov ah,4ch
int 21h
code ends
end

(2)对源程序t1.asm进行汇编、连接、运行、调试。

先进行编译:

技术分享图片

连接:

技术分享图片

运行结果:

技术分享图片

将第4行和第9行的数值分别改成4和5:

运行结果如下:

技术分享图片

结果显示,出现了不同的图标,可能与寄存器中值有关。

(3)对t1.exe进行调试

用r命令进行查看:

技术分享图片

观察到cx的值为0015,ds值为075a,cs为076a。满足cs=ds+10。

用debug查看psp内容,即从ds:0~ff

技术分享图片

可以看出开头是CD。

使用u命令进行反汇编:

因为从cs:ip所指向地址开始写入长度为15的代码,因此只要查看0~14

技术分享图片

用t命令和p命令进行单步调试:

技术分享图片

下一步是int命令要用p命令调试:

技术分享图片

出现图案。

接着调试结束:

技术分享图片

技术分享图片

练习2

(1)编写汇编程序

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

mov bx,0
mov [bx],0433h

add bx,2
mov [bx],0436h

mov ax,4c00h
int 21h
code ends
end

(2)对源代码进行汇编,连接,运行,调试

最后运行t2的时候什么都没有显示

技术分享图片

在cls之后出现了预期的红色36

技术分享图片

将源代码中line7的0433h→0432h,line10 的 0436h→0439h, 然后重新汇编、连接:

技术分享图片

发现数字变化了,颜色没有发生变化。

将源代码中 line7 的 0433h→0333h,line10 的 0436h→0336h, 然后重新汇编、连接:

技术分享图片

发现数字没有变,颜色发生了变化。

类似实验一,进行单步调试:

技术分享图片

技术分享图片

用d命令查看bx内存,发现0336并没有存入内存中

技术分享图片

最后程序正常结束

技术分享图片

 

五.总结与体会

从实验一可看出,当出现int 21中断时,用p命令进行单步调试,可以显示数值。

从实验二可以看出,数据不能用mov指令直接写入内存单元。可以通过将数据存入显存中显示数值。

 

实验三 编程、编译、连接、跟踪

标签:page   exe   总结   info   tle   str   出现   反汇编   you   

原文地址:https://www.cnblogs.com/makaya/p/9979283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!