请问汇编中保护psp偏移地址和保护返回的dos地址是什么意思?还有什么是dos调用??

 我来答
AJISky
2011-03-09 · TA获得超过1122个赞
知道小有建树答主
回答量:457
采纳率:100%
帮助的人:246万
展开全部
  program segment prefix ,简称PSP(程序段的前缀)
  当输入一个外部命令或通过EXEC子功能(系统功能调用INF 21h的子功能号为4BH)加载一子程序时,COMMAND确定当时内存可用空间的最低端作为程序段起点。在程序所占内存空间的前256个字节中,系统会为程序创建程序的前缀(PSP)的数据区,DOS要利用PSP来和被加载程序进行通信;PSP内有程序返回、程序文件名等信息,可以通过研究psp定位文件名信息,进而获取文件名。 从这段内存区的256字节处开始(在PSP的后面),将程序装入,程序的地址被设为SA+10H:0 (其中SA为系统为程序分配内存的起始位置的段地址即当前寄存器DS的内容); (注意:PSP区和程序区虽然物理地址连续,却有不同的段地址。)
  该PSP中包含以下三部分信息:
  (1)供被加载程序使用的DOS入口,如PSP+0、+2、+5和+2CH字段;
  (2)供DOS本身使用的DOS入口,如PSP+0AH、+0EH、+12H和+2CH字段;
  (3)供被加载程序使用传递参数,如PSP+5CH,+6CH和80H字段。

  保护返回DOS地址是说你在编写程序时,在程序结束后需要你来返回到DOS系统中,这是因为DOS是单任务操作系统,一次只能执行一个程序,具体操作就是使用4ch功能调用,如
  mov ah,4ch
  int 21h
  至于DOS功能调用比如上边的int 21h 就是一个系统功能调用,意思是说有人提前编号的一些功能如int 21h 的9号功能调用能够输出字符串,
  具体:buff db "this is hello world!"

  mov dx,offset buff
  mov ah,9h
  int 21h
  程序就可以输出“this is hello world!”
  就相当于WINDOWS的API 和c语言中的Printf函数,就是调用系统函数的意思
wenjinsong1999
2011-03-09
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
这个还真不知道啊!如果你也玩真三国无双,就交流交流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式