汇编语言(王爽)实验三 编程,编译,链接,跟踪

实验内容

  1. 将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    然后保存为.asm格式文件,利用dos环境,通过masm.exe,link.exe,debug.exe三个程序进行编译,链接,跟踪。
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    运行至此就已经产生了.obj和.exe 文件
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
  2. 用debug跟踪t1.exe的执行过程,写出每一步执行后相关的寄存器的内容和栈顶的内容
    先debug t1.exe 进入跟踪,然后如下操作
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    由以上结果我们可以看到,栈顶元素一直为0。
  3. Psp的头两个字节是cd20,用debug加载t1.exe,查看psp的内容
    首先说明什么是psp,如下图所示:
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    可以看到ds = 049e cs = 04ae ,之间相差10h,共有256个字节,这段内存即为psp区,dos利用psp和被加载的程序通信。256个字节后面存放的是程序。
    所以,049E到04AE这就是PSP区间。
    然后我们进行查看PSP里到底是什么东东
    汇编语言(王爽)实验三 编程,编译,链接,跟踪
    先用u命令查看汇编形式,然后再用d命令查看数据。