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

Window控制硬件时借助的是输人输出指令。其中具有代表性的两个输入输出指令就是IN和OUT。IN 指令通过指定端口号的端口输入数据,并将其存储在CPU内部的寄存器中。OUT指令则是把CPU寄存器中存储的数据,输出到指定端口号的端口。计算机主机中,附带了用来连接显示器及键盘等外围设备的连接器。而各连接器的内部,都连接有用来交换计算机主机同外围设备之间电流特性的IC。这些IC,统称为1/0控制器。I/O控制器中有用于临时保存输入输出数据的内存。这个内存就是端口。各端口之间通过端口号进行区分。端口号也称为1/O地址。

IRQ是用来暂停当前正在运行的程序,并跳转到其他程序运行必要机制。该机制称为中断处理。实施中断请求的是连接外围设备的I/O控制器,负责实施中断处理程序的是CPU。为了进行区分,外围设备的中断请求会使用不同于IO端口的其他编号,该编号称为中断编号。

DMA是指在不通过CPU的情况下,外围设备直接和主内存进行数据传送。磁盘等都用到了这个DMA机制。通过利用DMA,大量数据就可以在短时间内转送到主内存。显示器中显示的信息一直存储在某内存中。该内存称VRAM。在程序中,只要往VRAM中写人数据,该数据就会在显示器中显示出来。实现该功能的程序,是由操作系统或BIOS提供,并借助中断来进行处理的。

原文地址:https://www.cnblogs.com/xl592338942/p/10746287.html