系统功能(System Function)
2640 点击·0 回帖
![]() | ![]() | |
![]() | 25H ―设置中断向量 30H ―读取MS-DOS版本号 33H ―读取/设置Break标志 34H ―读取InDOS标志的地址 35H ―读取中断向量 38H ―读取/设置国家信息 44H ―IOCTL(I/O控制) 50H ―设置程序段前缀(PSP)地址 51H ―读取程序段前缀(PSP)地址 59H ―读取扩展的错误信息 5EH ―读取机器名,读取/设置打印机配置 5FH ―设备重定向 63H ―读取前导字节表 65H ―读取扩展的国家信息 66H ―读取/设置代码页 5D0AH ―设置扩展的错误信息 (1)、功能25H 功能描述:设置中断向量表 入口参数:AH=中断号 DS:DX=中断处理程序的入口地址 出口参数:无 (2)、功能30H 功能描述:取MS-DOS操作系统的版本号 入口参数:AH=30H 出口参数:AL=0――V 1.0;对其它高版本有:AL=主要版本号 AH=次版本号(MS-DOS 3.1=0AH,...) BH=OEM的序列号(Original Equipment Manufacturer) BL:CX=24位用户序列号 (3)、功能33H 功能描述:获得或改变操作系统中断的状态。在功能调用期间,将影响^C的检测 入口参数:AH=33H AL=00H――取状态 =01H――设置状态,DL=00/01表示置该状态OFF/ON 出口参数:取状态时,DL=00/01――分别表示OFF/ON 说明: 1、若AL中存入其它的功能号,则返回时,AL的值为0FFH; 2、若置AL为5,则启动驱动器号返回在DL中(1-A,2-B,…) (4)、功能34H 功能描述:获得InDOS标志的远地址,它由DOS维护表示DOS时活跃的 入口参数:AH=34H 出口参数:ES:BX=InDOS标志的远地址 若该单元值为1,表示DOS功能在执行,否则,则不是。 (5)、功能35H 功能描述:取指定中断号的入口地址 入口参数:AH=35H AL=中断号 出口参数:ES:BX=中断处理程序的入口地址 (6)、功能38H 功能描述:读取或设置国家信息 入口参数:AH=38H 当读取国家信息时 DS:DX=存放返回信息的地址 AL=0――取当前国家信息 AL=1~0FEH――取国家代码小于255的国家信息 AL=0FFH――取代码大于等于255的国家信息,BX=国家代码 设置国家信息时 DX=0FFFFH AL=0~0FEH――设置国家代码小于255的国家信息 AL=0FFH――置代码大于等于255的国家信息,BX=国家代码 出口参数:CF=0――调用成功,BX=国家代码,否则。AX=错误代码(02H),其含义见错误代码表 说明国家信息如下所示: 字节0-1H:日期格式:0―mdy、1―dmy、2―ymd 字节2-6H:货币字符 字节7-8H:数值千位分割符 字节9-0AH:数值精度分割符 字节0B-0CH:日期间隔符 字节0D-0EH:时间间隔符 字节0FH:货币格式 位0=0――货币符号在前,否则,货币符号在后 位1=0――货币符号和数据之间无空格,否则,二者之间有一个空格 位2=0――货币符号和小数点分开,否则,货币符号代替小数点 字节10H:货币的小数位数 字节11H:时间格式。位0=0―12小时制,否则,24小时制 字节12~15H:Case-Map调用地址 字节16~17H:字符串分割符 字节18~21H:保留 (7)、功能44H 功能描述:输入/输出控制,其子功能描述: 00H―取设备信息01H―取设备信息 02H―从字符设备驱动器接受控制数据03H―发送控制数据到字符设备驱动器 04H―从块设备驱动器接受控制数据 05H―发送控制数据到块设备驱动器 06H―检查输入状态07H―检查输出状态 08H―检查块设备是否为可拆卸设备09H―检查设备是否为远程设备 0AH―检查句柄是否为远程对象0BH―改变共享访问入口数 0CH―字符设备的一般I/O控制信息0DH―块设备的一般I/O控制信息 0EH―读取逻辑驱动器映射关系0FH―设置逻辑驱动器映射关系 说明:输入/输出子功能中的00H、06H和07H仅针对文件句柄,子功能00H~ 08H不支持网络设备。 (8)、功能50H 功能描述:设置程序段前缀(PSP)地址 入口参数:AH=50H BX=新的PSP地址 出口参数:无 (9)、功能51H 功能描述:读取程序段前缀(PSP)地址 入口参数:AH=51H 出口参数:BX=PSP地址 (10)、功能59H 功能描述:读取扩展的错误信息 入口参数:AH=59H BX=00H 出口参数:AX=扩展的错误代码,其含义见错误代码表 BH=错误类型,其定义如下: 01h―资源短缺02h―处于临时状态而非错误 03h―权限问题04h―系统软件内部错误 05h―硬件失败06h―系统软件失败,但不是活跃进程失败 07h―应用程序错08h―文件或数据项未发现 09h―文件或数据项类型或格式错0Ah―文件或数据项相互加锁 0Bh―驱动器中坏磁盘,磁盘中坏区域或存储问题 0Ch―其它错误 BL=建议采用的措施,其定义如下: 01h ― 重试若干次后,再选"终止"或"忽略" 02h ― 重试若干次(二次之间要等待)后,再选"终止"或"忽略" 03h ― 从用户获取正确的信息 04h ― 终止应用程序,并清除其所使用资源 05h ― 立即终止程序,但没有清除其资源 06h ― 忽略错误 07h ― 消除错误原因,再重试 CH=错误地点,其定义如下: 01h ― 不知道 02h ― 块设备(磁盘或磁盘模拟器) 03h ― 网络 04h ― 串行设备 05h ― 内存 ES:DI=插入磁盘标签的字符串,若AX=0022h(非法改变磁盘) (11)、功能5EH 功能描述:读取机器名,读取/设置打印机配置 子功能号功能描述 00h读取机器名 02h设置打印机安装字符串 03h读取打印机安装字符串 ①、子功能1 入口参数:AH=5EH AL=00H DS:DX=接受字符串缓冲区的地址 出口参数:CF=1――操作失败,AX=错误号(01H),其含义见错误代码表,否则, CH=00H――机器名未定义,否则,机器名已定义 CL=NetBios名称号(当CH≠00H时) DS:DX=标识符地址(当CH≠00H时) ②、子功能2 入口参数:AH=5EH AL=02H BX=重定向列表索引 CX=安装字符串的长度 DS:SI=安装字符串的地址 出口参数:CF=0――操作成功,否则,AX=错误号(01H),其含义见错误代码表 ③、子功能3 入口参数:AH=5EH AL=03H BX=重定向列表索引 ES:DI=接受字符串缓冲区的地址 出口参数:CF=0――操作成功,CX=接受字符串的长度,否则,AX=错误号(01H),其含义见错误代码表 (12)、功能5FH 功能描述:设备重定向 子功能号功能描述 02h读取重定向列表索引 03h重定向设备 ①、子功能1 入口参数:AH=5FH AL=02H BX=重定向列表索引 DS:SI=接受本地设备名的16字节存储区地址 ES:DI=接受网络名的128字节存储区地址 出口参数:CF=1――操作失败,AX=错误号(01H或12H),其含义见错误代码表,否则,BH位0=0H――设备合法,否则,设备非法 BL=设备类型――03H:打印机,04H:驱动器 CX=存储参数值 DX=被破坏 BP=被破坏 DS:SI=存放本地设备名的地址 ES:DI=存放网络名的地址 ②、子功能2 入口参数:AH=5FH AL=03H BL=设备类型――03H:打印机,04H:驱动器 CX=调用者保存的参数 DS:SI=本地设备名的16字节存储区地址 ES:DI=网络名的128字节存储区地址,紧跟其后是密码 出口参数:CF=0――操作成功,否则,AX=错误号(01H、03H、05H、08H、0FH或12H),其含义见错误代码表 (13)、功能63H 功能描述:读取前导字节表 入口参数:AH=63H AL=子功能 =00H―读取系统前导字节表地址 =01H―设置/清除临时控制台标志(DL=00H/01H―清除/设置标志) =02H―读取临时控制台标志值 出口参数:BX=1――操作失败,AX=错误号(01H),其含义见错误代码表,否则,调用时, 若AL=00H,则,DS:SI=系统前导字节表地址; 若AL=02H,则,DL=临时控制台标志值 (14)、功能65H 功能描述:读取扩展的国家信息 入口参数:AH=65H BX=代码页(-1=活跃的CON设备) CX=接受信息的缓冲区大小 DX=国家标识(-1=缺省) ES:DI=接受信息的缓冲区地址 AL=子功能 =01H――读取一般的国家信息 =02H――读取指向大写字母表的指针 =04H――读取指向文件名大写字母表的指针 =06H――读取指向校对表的指针 =07H――读取指向DBCS向量的指针 出口参数:CF=0――操作成功,需要的数据存入调用的缓冲区,否则,AX=错误号(02H),其含义见错误代码表 (15)、功能66H 功能描述:读取/设置代码页 入口参数:AH=66H AL=子功能号:01H――读取代码页,02H――选择代码页 BX=选择的代码页(当AL=02H) 出口参数:CF=0――操作成功,当调用子功能01H时,BX=活跃的代码页,DX=缺省的代码页,否则,AX=错误号(02H或65H),其含义见错误代码表 (16)、功能5D0AH 功能描述:设置扩展的错误信息 入口参数:AX=5D0AH DS:DX=扩展错误结构的地址,该结构的说明如下: EXTEND_ERR STRUCT RAx word ? ;AX RBx word ? ;BX RCx word ? ; CX RDx word ? ; DX RSi word ? ; SI RDi word ? ; DI RDs word ? ; DS REs word ? ; ES Pad word 3 DUP(0) EXTEND_ERRENDS 出口参数:无 | |
![]() | ![]() |