1、将下面的程序保存为t1.asm,将其生成可执行未见,t1.exe
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本人用的是notepad打汇编的,然后这次试验就命名为s3_1(并不是题目所说的t1,注意一下)
接着就日常masm、link和debug



2、用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容
先用u来查看debug的代码,代码段从0000执行到0014

逐条执行



(注意最后一个是p不是t,可查看4.9,执行完后用q返回dos界面)
3、PSP的头两个字节是CD20,用debug加载t1.exe,查看PSP的内容
在4.9里面已经说明了ds为PSP的段地址,CS为代码段的段地址。因此直接d ds:0就可以查看到PSP的内容

本文介绍了一个简单的汇编程序的编写与调试过程,包括如何使用MASM进行编译、LINK进行链接以及DEBUG进行逐行跟踪调试。文章还详细记录了寄存器和栈的变化,并展示了如何使用DEBUG查看PSP的内容。
1999

被折叠的 条评论
为什么被折叠?



