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

上传人:n**** 文档编号:45890834 上传时间:2018-06-20 格式:PDF 页数:44 大小:182.22KB
返回 下载 相关 举报
C语言的常用库函数使用方法分析及用途_第1页
第1页 / 共44页
C语言的常用库函数使用方法分析及用途_第2页
第2页 / 共44页
C语言的常用库函数使用方法分析及用途_第3页
第3页 / 共44页
C语言的常用库函数使用方法分析及用途_第4页
第4页 / 共44页
C语言的常用库函数使用方法分析及用途_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C语言的常用库函数使用方法分析及用途》由会员分享,可在线阅读,更多相关《C语言的常用库函数使用方法分析及用途(44页珍藏版)》请在金锄头文库上搜索。

1、C语言的常用库函数使用方法分析及用途语言的常用库函数使用方法分析及用途absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能: 从 drive 指定的驱动器磁盘上, sectnum 指定的逻辑扇区号开始读取(通过 DOS 中断 0x25 读取)num 个(最多 64K个)扇区的内容,储存于 buf 所指的缓冲区中。参数:drive=0 对应 A 盘,drive=1 对应 B 盘。返回值:0:成功;-1:失败。头文件:dos.habswrite()写磁盘绝对扇区函数原形:int abswrite(in

2、t drive,int nsects,int lsect,void *buffer)drive=0(A 驱动器)、1(B 驱动器)、nsects=要写的扇区数(最多 64K 个);lsect=起始逻辑扇区号;buffer=要写入数据的内存起始地址。功能:将指定内容写入(调用 DOS 中断 0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT 表和目录结构所在的扇区,也照常进行。返回值:0:成功;-1:失败。头文件:dos.hatof()将字符串转换成浮点数的函数原形:double atof(const char *s)功能:把 s 所指向的字符串转换成 double 类型。

3、s 格式为:符号数字.数字E 符号数字返回值:字符串的转换值。头文件:math.h、stdlib.hatoi()将字符串转换成整型数的函数原形:int atoi(const char *s)功能:把 s 所指向的字符串转换成 int 类型。s 格式为:符号数字返回值:字符串的转换值。若出错则返回 0。头文件:stdlib.hatol()将字符串转换成长整型数的函数原形:long atol(const char *s)功能:把 s 所指向的字符串转换成 long int 类型。s 格式为:符号数字返回值:字符串的转换值。若出错则返回 0。头文件:stdlib.hbcd()把一个数转换成对应的 B

4、CD 码的函数原形:bcd bcd(int x)bcd bcd(double x)bcd bcd(double x,int decimals)注意: BCD 码的精度可达 17 位。 参数 decimals 是可选的,用来指定转换后小数点后的位数。头文件:bcd.hbdos()原形int bdos(int fnum,unsigned dx,unsigned al)其中 fnum 是系统调用号;dx 是传给寄存器 DX 的值;al 是传给寄存器 AL 的值;功能DOS 系统调用(INT21H)返回值AX 中的值biosdisk()调用 BIOS 磁盘驱动程序函数原形:char biosdisk(

5、int cmd,int drive,int head,int track,intsector,int nsects,void *buffer)功能:使用中断 0x13,直接调用 BIOS 进行磁盘操作参数:(1)cmd:2-数据以每扇区 512 字节的格式读入 buffer,起始扇区由head、track 和 sector 定,扇区数由 nsects 定。3-将 buffer 中的数据按每扇区 512 字节写入磁盘。4-对扇区进行数据校验。6-格式化一个磁盘并对化扇区设置化标志。8-返回当前驱动器参数在 buffer 的前 4 个字节中。10-长读,每扇区读入 512 字节加上额外的 4 个字

6、节。11-长写,每扇区写入 512 字节加上额外的 4 个字节。(2)drive:0-第一个软驱;1-第二个软驱;0x80-第一个硬驱(3)head:磁头(4)track:磁道(5)sector:扇区(6)nsects:扇区数(7)buffer:数据缓冲区,定义为 unsigned char buffer;返回值:0x00-操作成功0x01-错误命令0x03-企图写具有写保护的磁盘0x07-驱动器参数设置错误0x10-磁盘读/CRC/ECC 错误头文件:bios.h注:对于硬盘主引导记录扇区 head=0,track=0,sector=1outport()输出一个字到端口中的函数原形:void

7、 outport(int portid,int value)调用方式:outport(0x 端口号,要输出的字);功能:往指定端口地址输出一个字。头文件:dos.houtportb()输出一个字节到端口中的函数原形:void outportb(int portid,unsigned char value)调用方式:outportb(0x 端口号,要输出的字节);功能:往指定端口地址输出一个字节。附:PC I/O 地址分配PC 只用了 10 位地址线(A0-A9)进行译码,其寻址的范围为 0H-3FFH,共有 1024 个 I/O 地址。这 1024 个地址中前半段(A9=0,范围为 0H-1F

8、FH)是属于主机板 I/O 译码,后半段(A9=1, 范围为200H-3FFH)则是用来扩展插槽上的I/O译码用。I/O 端口功能表I/O 地址功能、用途0DMA 通道 0,内存地址寄存器(DMA 控制器1(8237)1DMA 通道 0, 传输计数寄存器2DMA 通道 1,内存地址寄存器3DMA 通道 1, 传输计数寄存器4DMA 通道 2,内存地址寄存器5DMA 通道 2, 传输计数寄存器6DMA 通道 3,内存地址寄存器7DMA 通道 3, 传输计数寄存器8DMA 通道 0-3 的状态寄存器AHDMA 通道 0-3 的屏蔽寄存器BHDMA 通道 0-3 的方式寄存器CHDMA 清除字节指针

9、DHDMA 主清除字节EHDMA 通道 0-3 的清屏蔽寄存器FHDMA 通道 0-3 的写屏蔽寄存器19HDMA 起始寄存器20H-3FH可编程中断控制器 1(8259)使用40H可编程中断计时器(8253)使用,读/写计数器 041H可编程中断计时器寄存器42H可编程中断计时器杂项寄存器43H可编程中断计时器,控制字寄存器44H可编程中断计时器,杂项寄存器(AT)47H可编程中断计时器,计数器 0 的控制字寄存器48H-5FH可编程中断计时器使用60H-61H键盘输入数据缓冲区61HAT:8042 键盘控制寄存器/XT:8255 输出寄存器62H8255 输入寄存器63H8255 命令方式

10、寄存器64H8042 键盘输入缓冲区/8042 状态65H-6FH8255/8042 专用70HCMOS RAM 地址寄存器71HCMOS RAM 数据寄存器80H生产测试端口81HDMA 通道 2,页表地址寄存器82HDMA 通道 3,页表地址寄存器83HDMA 通道 1,页表地址寄存器87HDMA 通道 0,页表地址寄存器89HDMA 通道 6,页表地址寄存器8AHDMA 通道 7,页表地址寄存器8BHDMA 通道 5,页表地址寄存器8FHDMA 通道 4,页表地址寄存器93H-9FHDMA 控制器专用A0HNM1 屏蔽寄存器/可编程中断控制器 2A1H可编程中断控制器 2 屏蔽C0HDM

11、A 通道 0,内存地址寄存器(DMA 控制器2(8237)C2HDMA 通道 0, 传输计数寄存器C4HDMA 通道 1,内存地址寄存器C6HDMA 通道 1, 传输计数寄存器C8HDMA 通道 2,内存地址寄存器CAHDMA 通道 2, 传输计数寄存器CCHDMA 通道 3,内存地址寄存器CEHDMA 通道 3, 传输计数寄存器D0HDMA 状态寄存器D2HDMA 写请求寄存器D4HDMA 屏蔽寄存器D6HDMA 方式寄存器D8HDMA 清除字节指针DAHDMA 主清DCHDMA 清屏蔽寄存器DEHDMA 写屏蔽寄存器DFH-EFH保留F0H-FFH协处理器使用100H-16FH 保留170

12、H1 号硬盘数据寄存器171H1 号硬盘错误寄存器172H1 号硬盘数据扇区计数173H1 号硬盘扇区数174H1 号硬盘柱面(低字节)175H1 号硬盘柱面(高字节)176H1 号硬盘驱动器/磁头寄存器177H1 号硬盘状态寄存器1F0H0 号硬盘数据寄存器1F1H0 号硬盘错误寄存器1F2H0 号硬盘数据扇区计数1F3H0 号硬盘扇区数1F4H0 号硬盘柱面(低字节)1F5H0 号硬盘柱面(高字节)1F6H0 号硬盘驱动器/磁头寄存器1F7H0 号硬盘状态寄存器1F9H-1FFH 保留200H-20FH 游戏控制端口210H-21FH 扩展单元278H3 号并行口,数据端口279H3 号并

13、行口,状态端口27AH3 号并行口,控制端口2B0H-2DFH 保留2E0HEGA/VGA 使用2E1HGPIP(0 号适配器)2E2H数据获取(0 号适配器)2E3H数据获取(1 号适配器)2E4H-2F7H 保留2F8H2 号串行口,发送/保持寄存器(RS232 接口卡2)2F9H2 号串行口,中断有效寄存器2FAH2 号串行口,中断 ID 寄存器2FBH2 号串行口,线控制寄存器2FCH2 号串行口,调制解调控制寄存器2FDH2 号串行口,线状态寄存器2FEH2 号串行口,调制解调状态寄存器2FFH保留300H-31FH 原形卡320H硬盘适配器寄存器322H硬盘适配器控制/状态寄存器3

14、24H硬盘适配器提示/中断状态寄存器325H-347H 保留348H-357HDCA3278366H-36FHPC 网络372H软盘适配器数据输出/状态寄存器375H-376H软盘适配器数据寄存器377H软盘适配器数据输入寄存器378H2 号并行口,数据端口379H2 号并行口,状态端口37AH2 号并行口,控制端口380H-38FHSDLC 及 BSC 通讯390H-393HCluster 适配器 03A0H-3AFHBSC 通讯3B0H-3B HMDA 视频寄存器3BCH1 号并行口,数据端口3BDH1 号并行口,状态端口3BEH1 号并行口,控制端口3C0H-3CFHEGA/VGA 视频

15、寄存器3D0H-3D7HCGA 视频寄存器3F0H-3F7H软盘控制器寄存器3F8H1 号串行口, 发送/保持寄存器(RS232 接口卡1)3F9H1 号串行口,中断有效寄存器3FAH1 号串行口,中断 ID 寄存器3FBH1 号串行口,线控制寄存器3FCH1 号串行口,调制解调控制寄存器3FDH1 号串行口,线状态寄存器3FEH1 号串行口,调制解调状态寄存器3FFH保留-outtextxy()在指定位置显示一字符串的函数原形:void far outtextxy(int x,int y,char far *textstring)功能:按照当前对齐方式和当前字体、方向、大小在视区中给定位置显

16、示一文本字符串。注意:用 textwidth 和 textheight 函数决定字符串的尺寸大小。头文件:graphics.hpeek()返回指定内存中字的函数原形:int peek(int seg,unsigned offset)功能:返回地址为 seg:offset 的字单元的值头文件:dos.hpeekb()返回指定内存中字节的函数原形:char peekb(int seg,unsigned offset)功能:返回地址为 seg:offset 的字节单元的值poke()在指定的内存中存储一个字的函数原形:void poke(int seg,unsigned offset,int word)功能:把 word 的 16 位值放到地址为 seg:offset 的字单元中pokeb()在指定的内存中存储一个字节的函数原形:void pokeb(int seg,unsigned offset,int byte)功能:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号