硬件的控制一般通过操作系统进行,应用不直接与硬件进行交互,其通过调用操作系统提供的api间接的控制硬件(也称系统调用)
Windows控制硬件时主要借助的是输入输出指令,最具代表性的就是IN与OUT指令,这两个指令也是汇编语言的助记符
IN指令:通过指定端口号的端口输入数据,并将其存储在CPU内部的寄存器中
OUT指令:把CPU寄存器中存储的数据,输出到指定端口号的端口
端口号: IO控制器中用于临时保存输入输出数据的内存,这个内存就是端口
I/O控制器:计算机内部用来连接主机同外围设备之间进行电流交换的IC连接器的总称(外围设备,鼠标、显示器、键盘等),此外IO控制器内部的内存也叫寄存器,不过该寄存器主要用于临时存放数据,CPU中的寄存器主要用于数据运算
IRQ中断请求:主要用于暂停当前正在运行的程序,并跳转到其它程序运行的机制,该机制称为中断处理
中断处理流程:1.中断处理程序把CPU所有寄存器的函数值保存到内存的栈中2.中断处理结束后,把栈中保存的数值还原到CPU寄存器,然后在继续进行对主程序的处理
如果CPU寄存器的值没有还原可能会导致主程序运行异常或终止,因为中断处理插入的程序由可能使用到和主程序同样的CPU寄存器
DMA直接内存访问机制:
在不通过CPU的情况下,外网设备直接与主内存进行数据传送,实现短时间内大量数据转送到主内,减少了通过CPU中转的耗时,在计算机中一般会存在DMA编号,CPU通过这个编号来识别是哪一个外围设备使用了DMA
文字图片的显示机制:
显示器中显示的信息一直存储在内存中,该内存称为VRAM,在程序中只要往VRAM中写入数据,数据就会在显示器中显示出来,实现该功能的程序,是由操作系统或者BIOS提供,并借助中断来实现,现在由于主内存的VRAM较小,显卡等专用硬件一般配备有与主内存独立的VRAM和GPU(图形处理器)来进行图形处理,提升处理速度。