练习一
编写汇编源程序 t1.asm
输入 edit, 并输入源程序代码
进行改值操作
如图所示, 对程序进行汇编, 连接, 运行
结果为 36
将 line4 与 line9 的 mov dl,3 和 mov dl,6 分别改为 mov dl,9 和 mov dl,8
输出结果为 98
用 r 命令查看, cx 值为 0016
ds 值为 075A,cs 值为 076A, 满 (cs)=(ds)+10H
用 d 命令查看 ds:0, 头两个字节为 CD 20
用 u 命令对 t1 进行反汇编
用 t 命令进行单步执行, 遇到 int 则用 p 命令
练习二
用 edit 输入源代码
对源程序进行汇编, 连接, 运行
结果为红色的 36
对源程序进行修改, 将源代码中 line7 的 0433h 改为 0432h, line10 的 0436h 改为 0439h
进行汇编, 连接, 运行
结果为红色的 29
对源程序进行修改, 将源代码中 line7 的 0433h 改为 0333h, line10 的 0436h 改为 0336h
进行汇编, 连接, 运行
结果为蓝色的 36
延伸思考和分析
1. 本实验的练习二和实验一中的第四题都是通过改变值使输出结果发生变化. 实验一中的第四题修改的内存地址为 b810:0000, 本实验中是先将 0b800h 赋给 ax, 在用 as 给 ds 赋值, 用 ds 寄存该地址.
本实验的练习二中先将 line7 的 0433h 改为 0432h, line10 的 0436h 改为 0439h, 只有低位发生了变化, 改变了最后输出的值的大小, 后又将源代码中 line7 的 0433h 改为 0333h, line10 的 0436h 改为 0336h, 只有高位发生了变化, 改变了最后输出值的颜色
结论: 低位改变值大小, 高位改变值颜色
2. 本实验中的练习一和练习二都是将值进行输出, 但是输出的方式有所不同
总结与体会
1. 在单步执行时, 遇到 int 需要使用 p 命令
2. 在 dosbox 中, 当 debug x.exe 后可能会显示不出来, 需要 cls(将页面内容清空) 才可以显示出来
3. 通过该实验, 我更加清晰地了解了汇编, 连接, 运行, 调试这几步的具体内容
实验三
来源: http://www.bubuko.com/infodetail-2851370.html