《程序是怎样跑起来的》第十一章

关于控制硬件,Windows提供了通过应用来间接控制硬件的方法,利用操作系统提供的系统调用功能就能实现对硬件的控制。在Windows中系统调用称为API。API就是应用调用的函数,这些函数存储在DLL文件中。Windows控制硬件时借助的是输入输出指令,这些指令也是汇编语言的助记符。IN指令通过指定的端口号的端口输入数据,并将其存储在CPU内部的寄存器中。OUT指令则是吧CPU寄存器中存储的数据输出到指定端口号的端口。I/O控制器中有用于临时保存输入输出数据的内存,这个内存就叫端口。I/O内部的寄存器与CPU的寄存器不同,CPU的寄存器是用来进行数据运算处理的,而I/O寄存器则主要用来临时存储数据。实现I/O控制的集成电路中,会存在多个端口,所以就会有多个I/O控制器,一个I/O控制器既可以控制一个外围设备,也可以控制多个外围设备,各端口之间通过端口号区分,端口号也称为I/O地址。IRQ是用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制,这个机制被称为中断处理。实施中断请求的是链接外围设备的I/O控制器,负责实施中断处理程序的是CPU。外围设备的中断请求会使用跟I/O端口不同的编号,称为中断编号。由于外围设备有很多个,因此就有必要按照顺序来调查。按照顺序调查多个外围设备的状态称为轮询。DMA是指在不通过CPU的情况下,外部设备直接和主内存进行数据传送。

posted @ 2024-02-29 19:49  余歲安  阅读(2)  评论(0编辑  收藏  举报