工具:
学习工具:emu8086最好用的汇编学习环境,有一个非常好用的调试器
window下的命令行工具:DEBUG MASM LINK (也许还有ML.EXE ?)
DEBUG
windows自带的调试工具,win7x64下木有该工具
常用命令:
a 输入一段小汇编程序,新行内按回车结束输入 注意:输入的数字为16进制,不要输入 0018 或 18H这种形式
t 单步跟踪 可以输入 t N 代表执行N次,注意遇到诸如 mul 这些复杂命令时,单步跟踪会很长。。。没意义
p 这个我还没彻底明白。。
u 反汇编,程序很长时应该继续输入u查看接下来的反汇编代码
g 运行程序至结束 或加参数 0021代表执行至0021处
d 显示内存中的值 如
d ds:0 ;显示数据段
d 0ba2:0021 ;显示从 0ba2:0021 开始的内存段
一些注意
想在程序执行结束后查看内存中的值(通常是执行结果),不能简单的 g 然后 d ds:0,因为程序退出后windows会回收该区域。
有两个方法:
1. 先t,查看寄存器AX的值,通常即为数据区ds的首地址 然后 d 该位置
2. 反汇编,记住中断退出命令的位置,然后使用g+参数运行至该位置,然后使用 d ds:0