
源程序: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区
本文详细解析了PSP区与程序区的关系,通过debug exe的实际操作,阐述了如何定位PSP区,并通过公式计算得出PSP区的物理地址。文章深入浅出地讲解了汇编语言中CS:IP指向的位置,以及PSP区和程序区的转换方法。
1220

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



