论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
软件开发
>
汇编语言
>
经典汇编语言教程:10.8 程序段前缀及其应用
回复
« 返回列表
111111
精灵王
注册日期
2010-12-08
发帖数
640
QQ
火币
1103枚
粉丝
120
关注
75
加关注
写私信
打招呼
阅读:
7894
回复:
0
经典汇编语言教程:10.8 程序段前缀及其应用
楼主
#
更多
只看楼主
倒序阅读
发布于:2013-01-28 14:27
保存
100%
100%
[]
1
程序段前缀PSP(ProgramSegment Prefix)是一个具有256个字节的信息区,是可执行文件(EXE和COM)所特有的,其内容在操作系统装入该文件运行时存入。
10.8.1程序段前缀的字段含义
PSP信息区的字段分布如下表10.1所列。
表10.1 PSP信息区的字段分布表
偏移量
内容含义
偏移量
内容含义
00~01H
程序结束指令中断20H
2E~31H
保留
02~03H
分配给该程序的最后段的段地址
32~33H
文件句柄表的长度
04~09H
保留
34~37H
指向文件句柄表的远指针
0A~0DH
中断22H的地址(处理终止程序)
38~4FH
保留
0E~11H
中断23H的地址(处理^Break)
50~51H
中断21H的功能调用
12~15H
中断24H的地址(处理严重错误)
52~5BH
保留
16~17H
保留
5C~6BH
参数区1
18~2BH
缺省的文件句柄表
6C~7FH
参数区2
2C~2DH
程序环境块的段地址
80~FFH
存储缺省DTA的缓冲区
PSP信息区的字段说明:
◆18~2BH字段:
该字段内共有20个字节,每个字节存储一个文件句柄,所以,系统允许应用程序在某一时刻最多只能打开20个文件。
前5个字节存储系统标准设备的句柄,可参阅8.3.6节——系统标准设备的句柄。
若某文件需要同时打开更多的文件,则需要调整文件句柄数。即:先用中断21H之功能4AH释放
内存
,再用其功能67H来设置新的文件句柄数。
MOV BX, NewNum ;新的文件句柄最大数(20~65535)
MOV AH, 67H
INT 21H
◆ 2C~2DH字段:
该字段存放程序运行环境的段地址,程序的缺省运行环境有160个字节,最多可达32K。该环境含有系统命令,如:COMSPEC、PATH、PROMPT和SET。
◆ 5C~6BH字段:
该字段存放命令行的第一个参数。假设要执行下列命令:
Masm D:test.asm
这时,04H(驱动器D)、8个字符的文件名和3个字符的后缀存放在该区域,没有存放字符的单元用空格(20H)来填充。若省缺驱动器和文件名,则第一个字节为00H,其它单元为20H。
◆ 6C~7FH字段:
该字段存放命令行的第二个参数。假设要执行下列命令:
Masm D:test.asm,test.obj
这时,test.obj作为第二参数存入该字段,存储方式如上字段。
◆ 80~FFH字段:
该字段的第一个字节存放命令行参数的字符数,第二个字节为空格,从第三个字节开始存放命令行参数字符。
喜欢
0
评分
0
最新喜欢:
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢