实验三
编译原理
源程序(.asm) -> 目标文件(.obj) -> 程序(.exe)
实验任务
1.生成程序
(1)编写.asm
由于我的dosbox没有edit.exe,先按照以下教程配置edit
如何解决DOSBox 0.74无法运行edit指令_dosbox edit.exe-CSDN博客
进入DOS方式,运行Edit
在edit界面编写.asm文件
assume cs:codesg
codesg segment
mov ax,2000H
mov ss,ax
mov sp,0
add sp,10
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00H
int 21H
codesg ends
end
将文件保存为.asm后缀
点击左上角file中的exit,退出edit
(2)编译
进入masm目录
输入编译的文件名,一路回车
可以在masm目录下查看生成的.obj文件
(3)连接
在masm目录下运行link.exe
在masm目录下可见生成的.exe
2.对程序进行debug
进入debug,按R查看寄存器
按u查看exe中全部指令
按t追踪每一条指令执行过程
注意:要使用p指令执行int 21
使用q指令退出debug,返回command
3.查看PSP内容
查看DS的地址,来到该地址,发现 PSP 的头两个字节确实是 CD 20