(十一)硬件控制方法

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,422評論 8 114
  • 名詞延伸 通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,645評論 2 56
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,185評論 6 13
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,374評論 11 349
  • 十一歲那年夏天,我是水滸英雄武松,而我爸是鄭屠。 那是我記憶中最熱的一個夏天。那年我們整個村子都冒著熱氣,所有的人...
    冬雷閱讀 851評論 0 0