源程序: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 21
codesg ends
end
知识点:
个人理解:psp区为SA:0 程序区为SA+10H debug exe时 当然CS:IP当然就是在程序区啦 所以 还没有进行单步操作的时候 CS:IP应该是交界处啦。那么 有公式可以算出 psp区就是 (CS-10H ):IP ,或者可以这样理解,全部换算成物理地址,也就是说PSP区+100H就是程序区 :(SA+10H)*10H PSP区为SA*10H
如图:cs为076A ip为0000 所以psp区为 (076A-10H):0000很简单就能找到psp区