从汇编程序开始
cs:codesg |
伪指令
段名 segment |
end
和 ends
不一样, end标记整个程序的结束assume
将有特定用途的段和相关的段寄存器关联起来
程序返回
mov ax,4c00H |
编写代码,使用 MASM.exe 编译,然后使用 LINK.exe 进行链接
运行当然是没有结果的,我们需要使用 debug
调试
可执行文件的加载过程
程序加载的时候,找到一个段地址 SA:0000
,程序从 SA+10H:0000
处开始运行,SA
存放在 ds寄存器中
刚加载进内存中时,
此时看到 ds 寄存器的内容为 075AH
,所以程序的物理地址就是 ds+10h ,正好符合
在int21 时需要使用 p命令执行
实验3 编译链接跟踪
cs:codesg |
PSP 的头两个字节是CD20,用debug加载,查看PSP的内容