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,页表地址寄存器

百分百考试网 考试宝典

立即免费试用

关注
微信

关注官方微信