我的1.exe 从何而来
在DOS
中使用debug 1.exe
运行debug
对1.exe
进行跟踪时
- 程序加载的顺序是:
command
加载debug
,debug
加载1.exe
- 返回的顺序是:从
1.exe
中的程序返回到debug
,从debug
返回到command
debug 因自己的路径而不同,不要机械地用debug XXX.exe
- 左边是Windows PowerShell,我的文件目录; 右边是DOSBOX
-
Windows PowerShell 可以直接使用
ls pwd cd
首先,我在 【DOSBOX】 里把 【我自己机器的e:\assembly-learn】 挂载成了 【C:】
因此,在 【DOSBOX】 看来如果 我说【C:】,其实就是说 【我机器E盘 assembly-learn 文件夹】
然后,我把全部的代码和生成文件放在了, 【我机器的 e:\assembly-learn\asmcode】 下面
所以,要使得 【debug】 找到我的 【1.exe】,就需要写成 debug c:\asmcode\1.exe
跟踪
使用 T命令 单步调试
CX 寄存器 存放程序的长度
-
1.exe
程序的机器码共有 12个字节 ,CX内容为000CH
CX 存放程序的长度 机器码12个字节 CS内容为000CH.png
DS 存放内存区的段地址
-
CS:IP
指向程序的第一条指令
DS存放内存区的段地址 CS IP指向程序的第一条指令.png
使用 P 命令 程序正常结束( INT 21H); 使用 Q 命令 退出Debug
P命令 程序正常结束 返回到Debug;Q命令 退出Debug 返回到command.png