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

现在的高级汇编语言很少会有直接操纵硬件的指令是因为对硬件的访问被操作系统所包办了,操作系统为应用程序提供了间接访问硬件的方法,那就是系统调用,在Windows中也被称为API,API就是能被应用程序使用的函数,本体位于DLL文件中。
Windows最具有代表性的输入输出指令分别是in和out指令,这两种指令配上端口号即可实现对CPU寄存器的数据输入与输出操作。端口就是I/O控制器中临时存放输入输出数据的存储器,因为有着多个踝部设备,所以有多个I/O控制器,也就有着多个端口,于是用端口号进行区分也叫做I/O地址。
IRQ是一种让正在运行的程序暂停,转而运行其他程序的机制,这被称为中断处理,发出中断请求的时I/O控制器,实行中断请求的则是CPU,而要判断是哪个设备提出的中断请求,则要靠一种名为中断号的编号。而当有多个中断请求时,CPU将会混乱,所以在I/O控制器与CPU之间还有一个名为中断控制器的存在,它会将请求依次交给CPU进行处理
依次查询多个外部设备的操作称为轮询。
外部设备不经过CPU中转,直接和内存进行数据传输的操作叫做DMA,可以提高其它任务的处理效率。DMA是通过DMA控制器芯片实现的;还有一种与DMA相反的操作叫做PIO,PIO就是通过COU在外部设备和内存之间传输数据。

posted @ 2024-02-27 21:30  安知鱼~li  阅读(1)  评论(0编辑  收藏  举报