C语言的常用库函数使用方法分析及用途(9)

│  │       │      │

  │  │  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()将一个无符号长整形数左循环移位的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值