+ -
当前位置:首页 → 问答吧 → com程序的地址,总是必须从100开始么?

com程序的地址,总是必须从100开始么?

时间:2010-12-22

来源:互联网

用debug直接写汇编的时候,一开始总是需要a100,把代码地址放到100h这个地方。

3个问题:
1.这个a100指令,修改的是否是debug程序本身内存/代码空间当中的内容? 难道不会覆盖debug本身的代码/数据?
2. 在debug的0-100h这一段地址中的内容放了什么东西? 有用么?
3. 如果我写一个com程序,它很小,只有10个字节的话,当它装载到内存里面执行的时候,代码的开始地址也是100h吗?

困惑,高人指点一下哈!

作者: learnxml126   发布时间: 2010-12-22

这100H个字节是程序段前缀(PSP),它相当于是DOS管理每个载入的文件的控制块。对于.com,由于它不在分段(即cs,ds,es,ss都用同一个段地址),所以把前100h个字节留给PSP,即使程序只有返回指令(2个字节),它也是载入到100h开始的地址,因为PSP的结果是固定的,不随文件大小而改变。

作者: shzhfu   发布时间: 2010-12-22