(十一)硬件控制方法

Windows中,使用C语言等高级编程语言时,很少有能直接控制硬件的指令,因为对硬件的控制是由Windows操作系统负责的。


(十一)硬件控制方法_第1张图片

但是,应用可以间接控制硬件,方法是使用系统调用来控制硬件。系统调用即使用API中的函数,API是DLL文件的集成,而控制硬件的小函数的实体储存在DLL库文件中。


然而,Windows操作系统本事也是软件,它是怎么控制硬件的?
向CPU传递某些指令。


支持硬件输入输出的IN指令和OUT指令

IN指令和OUT指令也是汇编语言的助记符。
IN指令:通过指令端口号的端口输入数据,储存在CPU内的寄存器中。
OUT指令:把CPU内寄存器中的数据,通过指定端口号的端口输出。

(十一)硬件控制方法_第2张图片

端口(port)和端口号是什么?

计算机主机中,附带了用来连接外设的连接器
连接器的内部,有用于交换主机和外设之间的电流特性的 IC,即为I/0控制器
不同的外设都有各自不同的I/O控制器。

I/O控制器中用于临时保存输入输出数据的内存,即为端口

I/O控制器的内存,也成为寄存器,但与CPU中寄存器不同,它只用于临时存储数据。

各断口之间以端口号进行划分,端口号也称为 I/O地址
可以发现,Windows操作系统,使用IN指令和OUT指令,通过端口和端口号,对硬件输入输出数据。与通过内存地址对内存的读写数据是一致的。

(十一)硬件控制方法_第3张图片

(十一)硬件控制方法_第4张图片

中断机制

IRQ(Interrupt Request):中断请求。
中断(Interrupt):暂停正在运行的程序,跳转到其他程序运行的机制。


(十一)硬件控制方法_第5张图片
发出中断请求的是连接外设的I/O控制器,实施中断处理程序的是CPU。

为进行区分,外设的中断请求使用不同于端口号的中断编号
查看外设驱动器属性时,IRQ处的数值表示中断编号,而操作系统和BIOS提供响应这个中断编号的中断处理程序。

中断控制器:多个外设同时请求中断时,将它们的中断请求有序传递给CPU的IC。中断控制器位于I/O控制器和CPU之间。


(十一)硬件控制方法_第6张图片

(十一)硬件控制方法_第7张图片

(十一)硬件控制方法_第8张图片

DMA机制(Direct Memory Access)

DMA:不经过CPU,外设和内存直接数据交换。利用DMA,可以做到短时间内大量传输数据。


(十一)硬件控制方法_第9张图片
(十一)硬件控制方法_第10张图片

文字和图片的显示机制

VRAM(Video RAM): 内存的一部分,用于储存显示器中显示的信息。只要往VRAM中写入数据,该数据就会在显示器中显示出来。
对现在的计算器来说,VRAM不再位于主机内存中,因为那太小了。现在的VRAM位于显卡中,数百MB是必须的。


(十一)硬件控制方法_第11张图片
Paste_Image.png

你可能感兴趣的:((十一)硬件控制方法)