编程, 编译, 连接, 追踪
(1)
将下面的程序保存为t1.asm文件, 将其生成可执行文件t1.exe
(2)
用DEBUG单步追踪T1.EXE
前三行:
指定一个栈顶 2000:000A
这里pop完为什么内存变了捏? 我不理解遗留问题
接下来因为那两块内存都是0, 执行的其实是ax和bx互换了一下,但都是0
最后P指令 把CPU控制权交给DEBUG
(3)
PSP的头两个字节是CD 20, 用debug加载t1,exe并查看PSP的内容
可以看到 打开t1.exe 文件后 ds+10H = cs
因为PSP在代码段的前100H, 那么DS指向的应该是PSP的段地址, CS指向代码的段地址
可以看到这段内容确实是以CD 20开头的, 看来想的没错
100H = 256Bytes 这样的16行