C基础:C语言的常用库函数学习(四)

发布时间:2011-08-29 共3页

  MK_FP()设置一个远指针的宏
  原形:void far *MK_FP(unsigned seg,unsigned ofs)
  功能:通过段值(seg)和偏移量(ofs)建立一个远指针
  返回值:远指针
  头文件:dos.h
  movedata()拷贝数据函数
  原形:void movedata(unsigned srcseg,unsigned srcoff,unsigned dstseg,unsigned dstoff,size_t n)
  功能:从原地址(srcseg:srcoff)拷贝n个字节的数据到目标地址(dstseg:dstoff)。
  头文件:mem.h、string.h
  _open()打开一个文件进行读写的函数
  原形:int _open(path,oflags)
  char *path;//已建立文件的路径名
  int oflags;//方式
  功能:打开由path指定的文件,返回文件的句柄
  返回值:0(正常结束);-1(错误)
  头文件:fcntl.h、io.h
  open()打开文件进行读写的函数
  原形:int open(const char *path,int access[,unsigned mode])
  使用方法:文件句柄=open(\"文件名\",打开模式|打开模式);
  功能:打开path指定的文件,根据access指定的模式值读写。
  access模式:
  O_RDONLY 以只读方式打开
  O_WRONLY 以只写方式打开
  O_RDOWR  以读写方式打开
  以上标志只能使用一个,以下可以用|组合使用
  O_NDELAY
  O_APPEND 若置位,每次写操作前都使文件指针指到文件末尾
  O_CREAT  若文件不存在则创建
  O_TRUNC  若文件已存在,则将文件长度截为0
  O_EXCL  只和O_CREAT一起使用,若文件已经存在,返回错误代码
  O_BINARY 以二进制方式打开
  O_TEXT  以文本方式打开
  如果使用了O_CREAT方式,则需要提供参数mode
  (S_IWRITE可写;S_IREAD可读;S_IREAD|S_IWRITE可读写)
  返回值:文件句柄(成功时);-1(失败时)。
   成功时,文件指针指向文件头。
  头文件:fcntl.h、io.h
  outport()输出一个字到端口中的函数
  原形:void outport(int portid,int value)
  调用方式:outport(0x端口号,要输出的字);
  功能:往指定端口地址输出一个字。
  头文件:dos.h
  outportb()输出一个字节到端口中的函数
  原形: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-1FFH)是属于主机板I/O译码,后半段(A9=1,范围为200H-3FFH)则是用来扩展插槽上的I/O译码用。
        I/O端口功能表
  ———————————————————————————
  I/O地址 功能、用途
  ———————————————————————————
  0    DMA通道0,内存地址寄存器(DMA控制器1(8237))
  1    DMA通道0, 传输计数寄存器
  2    DMA通道1,内存地址寄存器
  3    DMA通道1, 传输计数寄存器
  4    DMA通道2,内存地址寄存器
  5    DMA通道2, 传输计数寄存器
  6    DMA通道3,内存地址寄存器
  7    DMA通道3, 传输计数寄存器
  8    DMA通道0-3的状态寄存器
  AH    DMA通道0-3的屏蔽寄存器
  BH    DMA通道0-3的方式寄存器
  CH    DMA清除字节指针
  DH    DMA主清除字节
  EH    DMA通道0-3的清屏蔽寄存器
  FH    DMA通道0-3的写屏蔽寄存器
  19H   DMA起始寄存器
  20H-3FH 可编程中断控制器1(8259)使用
  40H   可编程中断计时器(8253)使用,读/写计数器0
  41H   可编程中断计时器寄存器
  42H   可编程中断计时器杂项寄存器
  43H   可编程中断计时器,控制字寄存器
  44H   可编程中断计时器,杂项寄存器(AT)
  47H   可编程中断计时器,计数器0的控制字寄存器
  48H-5FH 可编程中断计时器使用
  60H-61H 键盘输入数据缓冲区
  61H   AT:8042键盘控制寄存器/XT:8255输出寄存器
  62H   8255输入寄存器
  63H   8255命令方式寄存器
  64H   8042键盘输入缓冲区/8042状态
  65H-6FH 8255/8042专用
  70H   CMOS RAM地址寄存器
  71H   CMOS RAM数据寄存器
  80H   生产测试端口
  81H   DMA通道2,页表地址寄存器
  82H   DMA通道3,页表地址寄存器
  83H   DMA通道1,页表地址寄存器
  87H   DMA通道0,页表地址寄存器
  89H   DMA通道6,页表地址寄存器
  8AH   DMA通道7,页表地址寄存器
  8BH   DMA通道5,页表地址寄存器
  8FH   DMA通道4,页表地址寄存器

百分百考试网 考试宝典

立即免费试用