(十一)硬件控制方法

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



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


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


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

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

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

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

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

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

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


中断机制

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


发出中断请求的是连接外设的I/O控制器,实施中断处理程序的是CPU。

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

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




DMA机制(Direct Memory Access)

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


文字和图片的显示机制

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


Paste_Image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,683评论 8 114
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,692评论 2 56
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,871评论 6 13
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,469评论 11 349
  • 十一岁那年夏天,我是水浒英雄武松,而我爸是郑屠。 那是我记忆中最热的一个夏天。那年我们整个村子都冒着热气,所有的人...
    冬雷阅读 4,392评论 0 0