C语言的常用库函数使用方法分析及用途(9)
2012-04-16 16:28
639 查看
│ │ │ │
│ │ flags │ │
│ │ │ │
└ └───────┴──────┘
│ x 两个结构变量 h │
└── 共享同一存储域 ──┘
其中字段flags对应于标志寄存器。字段cflag仅对应于进位标志位,函数在调用时不用该字段,只在返回时设置这个字段,因为许多BIOS服务都是通过进位标置为0还是1来表示成功还是失败。
注2:需先定义 struct SREGS 段寄存器指针名;
结构SREGS定义如下
struct SREGS {unsigned int es,cs,ss,ds}
函数只用了该结构中的段寄存器DS和ES。调用时根据它们的值设置DS和ES,同时把DS和ES原来的值保存在这个结构中,返回时再恢复DS和ES为原来的值,这就允许程序使用远指针或大数据编译模式。
该函数置全局变量_doserrno等于寄存器AX中的值,其返回值也等于AX中的值。
注3:向寄存器传递入口信息
输入指针名.x.寄存器名=要赋的值(入口信息);
注4:调用int86x后得接受出口信息
变量名=输出指针名.x.寄存器名
intdos()通用dos中断接口函数
原形:int intdos(inregs,outregs)
union REGS *inregs;//调用时的各寄存器的值
union REGS *outregs;//返回寄存器的值
功能:产生DOS软中断
注意:如果需要功能号,则装入AH;如果需要子功能号,则装入AL。
头文件:dos.h
intdosx()通用dos中断接口函数
原形:int intdosx(inregs,outregs,segregs)
union REGS *inregs;调用时的各寄存器的值
union REGS *outregs;返回寄存器的值
struct SREGS *seregs;调用时的段寄存器的值(还设置返回时的值)
功能:产生DOS软中断
头文件:dos.h
intr()执行8086软中断函数(改变软中断接口函数)
原形:void intr(int intno,struct REGPACK *preg)
调用方式:intr(中断号,&结构变量名)
注1:结构REGPACK定义如下
struct REGPACK
{
unsigned r_ax,r_bx,r_cx,r_dx;
unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;}
注2:使用时先定义一个结构变量
struct REGPACK 结构变量名;
注3:入口和出口用同一个结构变量来传递寄存器的值。
结构变量名.r_ax=要赋的值;
......
intr(中断号,&结构变量名);
某变量=结构变量名.r_ax;
头文件:dos.h
itoa()把整形数转换为字符串的函数
原形:char *itoa(int value,char *string,int radix)
功能:把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值,在2到36之间。分配给string的空间必须可容纳返回的所有字节(最多17字节)。
返回值:指向string的指针
头文件:stdlib.h
kbhit()检查当前按下的键的函数
原形:int kbhit(void)
功能:检查按下的键是否有效,若有效则可用getch()或getche()读取。
返回值:如果按键有效,返回一非零值,否则返回0。
头文件:conio.h
keep()驻留并退出函数
原形:void keep(unsigned char status,unsigned size)
功能:用于安装一个TSR程序(使用DOS功能调用0x31)。出口状态设置为在status中的值,程序占用存储空间为size,并释放内存的其余部分。
头文件:dos.h
log()
原形∶double log(double num)
功能∶求num的自然对数值
头文件∶math.h
log10()
原形∶double log10(double num)
功能∶求num以10为底的对数值
头文件∶math.h
_lrotl()将一个无符号长整形数左循环移位的函数
│ │ flags │ │
│ │ │ │
└ └───────┴──────┘
│ x 两个结构变量 h │
└── 共享同一存储域 ──┘
其中字段flags对应于标志寄存器。字段cflag仅对应于进位标志位,函数在调用时不用该字段,只在返回时设置这个字段,因为许多BIOS服务都是通过进位标置为0还是1来表示成功还是失败。
注2:需先定义 struct SREGS 段寄存器指针名;
结构SREGS定义如下
struct SREGS {unsigned int es,cs,ss,ds}
函数只用了该结构中的段寄存器DS和ES。调用时根据它们的值设置DS和ES,同时把DS和ES原来的值保存在这个结构中,返回时再恢复DS和ES为原来的值,这就允许程序使用远指针或大数据编译模式。
该函数置全局变量_doserrno等于寄存器AX中的值,其返回值也等于AX中的值。
注3:向寄存器传递入口信息
输入指针名.x.寄存器名=要赋的值(入口信息);
注4:调用int86x后得接受出口信息
变量名=输出指针名.x.寄存器名
intdos()通用dos中断接口函数
原形:int intdos(inregs,outregs)
union REGS *inregs;//调用时的各寄存器的值
union REGS *outregs;//返回寄存器的值
功能:产生DOS软中断
注意:如果需要功能号,则装入AH;如果需要子功能号,则装入AL。
头文件:dos.h
intdosx()通用dos中断接口函数
原形:int intdosx(inregs,outregs,segregs)
union REGS *inregs;调用时的各寄存器的值
union REGS *outregs;返回寄存器的值
struct SREGS *seregs;调用时的段寄存器的值(还设置返回时的值)
功能:产生DOS软中断
头文件:dos.h
intr()执行8086软中断函数(改变软中断接口函数)
原形:void intr(int intno,struct REGPACK *preg)
调用方式:intr(中断号,&结构变量名)
注1:结构REGPACK定义如下
struct REGPACK
{
unsigned r_ax,r_bx,r_cx,r_dx;
unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;}
注2:使用时先定义一个结构变量
struct REGPACK 结构变量名;
注3:入口和出口用同一个结构变量来传递寄存器的值。
结构变量名.r_ax=要赋的值;
......
intr(中断号,&结构变量名);
某变量=结构变量名.r_ax;
头文件:dos.h
itoa()把整形数转换为字符串的函数
原形:char *itoa(int value,char *string,int radix)
功能:把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值,在2到36之间。分配给string的空间必须可容纳返回的所有字节(最多17字节)。
返回值:指向string的指针
头文件:stdlib.h
kbhit()检查当前按下的键的函数
原形:int kbhit(void)
功能:检查按下的键是否有效,若有效则可用getch()或getche()读取。
返回值:如果按键有效,返回一非零值,否则返回0。
头文件:conio.h
keep()驻留并退出函数
原形:void keep(unsigned char status,unsigned size)
功能:用于安装一个TSR程序(使用DOS功能调用0x31)。出口状态设置为在status中的值,程序占用存储空间为size,并释放内存的其余部分。
头文件:dos.h
log()
原形∶double log(double num)
功能∶求num的自然对数值
头文件∶math.h
log10()
原形∶double log10(double num)
功能∶求num以10为底的对数值
头文件∶math.h
_lrotl()将一个无符号长整形数左循环移位的函数
相关文章推荐
- C语言的常用库函数使用方法分析及用途(10)
- C语言的常用库函数使用方法分析及用途(11)
- C语言的常用库函数使用方法分析及用途 (1)
- C语言的常用库函数使用方法分析及用途(14)
- C语言的常用库函数使用方法分析及用途(13)
- C语言的常用库函数使用方法分析及用途(3)
- C语言的常用库函数使用方法分析及用途(12)
- C语言的常用库函数使用方法分析及用途(2)
- C语言的常用库函数使用方法分析及用途(15)
- C语言的常用库函数使用方法分析及用途(5)
- 【转帖】C语言的常用库函数使用方法分析及用途
- C语言的常用库函数使用方法分析及用途(4)
- C语言的常用库函数使用方法分析及用途(8)
- C语言的常用库函数使用方法分析及用途(7)
- C语言的常用库函数使用方法分析及用途(6)
- 让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码
- [C/C++基础] C语言常用函数strlen的使用方法
- [C/C++基础] C语言常用函数memset的使用方法
- [C/C++基础] C语言常用函数sprintf和snprintf的使用方法
- minigui常用界面美化方法,及常用函数使用