[015][汇编语言]第一个程序 执行过程的跟踪

我的1.exe 从何而来

[013][汇编语言]第一个程序 段结束 程序结束 程序返回

[014][汇编语言]第一个程序 编译 连接 加载 执行

DOS中使用debug 1.exe 运行debug1.exe进行跟踪时

  • 程序加载的顺序是:command加载debugdebug 加载1.exe
  • 返回的顺序是:从1.exe中的程序返回到debug,从debug返回到command

debug 因自己的路径而不同,不要机械地用debug XXX.exe

[015][汇编语言]第一个程序 执行过程的跟踪_第1张图片
路径设置.png
  • 左边是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
    [015][汇编语言]第一个程序 执行过程的跟踪_第2张图片
    CX 存放程序的长度 机器码12个字节 CS内容为000CH.png

DS 存放内存区的段地址

  • CS:IP指向程序的第一条指令
    [015][汇编语言]第一个程序 执行过程的跟踪_第3张图片
    DS存放内存区的段地址 CS IP指向程序的第一条指令.png

使用 P 命令 程序正常结束( INT 21H); 使用 Q 命令 退出Debug

[015][汇编语言]第一个程序 执行过程的跟踪_第4张图片
P命令 程序正常结束 返回到Debug;Q命令 退出Debug 返回到command.png

你可能感兴趣的:([015][汇编语言]第一个程序 执行过程的跟踪)