初學彙編的知識總結!

2021-04-12 23:17:39 字數 805 閱讀 7899

最近剛剛接觸輸入輸出,對中斷,i/o的理解還是很亂,在這裡做乙個總結

我們通常的mov是針對主存的,和cpu中的暫存器,在80x86中i/o位址和記憶體不是統一編址,所以對主存和i/o的操作就不是同一指令,在i/o中用in,out.

固化在rom上的bios的資料區中包含了各個中斷處理程式,和i/o埠位址,而中斷向量儲存在記憶體開始的1k記憶體中

dos功能呼叫是建立在bios基礎上的,bios又是建立在硬體的基礎上的,所以越接近底層也就能獲取更高效率的程式,但也會更加煩瑣,需要你考慮的問題就越多.下面分別來說這3個方面

直接和硬體對話,最有效率的方法,但一些瑣碎的事也就接踵而來,開關中斷,外設的狀態等等.比如先開中斷,相應的控制狀態位開啟以允許更高階別的中斷產生,中斷巢狀時的現場保護,你要自己去in狀態,自己判斷,自己in i/o埠的資料,比如印表機,但圖形與鍵盤的緩衝區在記憶體中,你要自己去輸入輸出該記憶體區.

但bios的中斷程式似乎要輕鬆很多,只要入口引數設定好,int乙個中斷號(型別),自動通過1k記憶體中的中斷向量表查詢段直和偏移來找到中斷處理程式,你要的結果就在出口引數所在的暫存器中了,也就是說1個int把上邊和硬體直接對話的程式全都幹了.在這裡說一下,中斷有256種型別,沒個型別有2位元組的段直,2位元組的偏移,所以占用了1k,而且int屬於內部中斷,可遇見的,是程式設計師遇知的,而外部中斷是不可遇知的,隨即的.要看cpu是否開中斷了,中斷控制器的響應位是1還是0,所以直接和硬體對話是很麻煩的.

至於dos功能呼叫就不多說了,大家經常用到的.

建議多用bios功能,他主要是根據中斷向量找到中斷處理程式,而直接對話就是你自己直接去寫處理程式,除非非要求效率,不然還是謹慎起見!

初學結構體的知識總結

struct student stu1,stu2,stu3 int main 匿名結構體 struct stu1 struct ps int main struct node int main typedef struct node node int main include offsetof的標頭...

初學c 基本知識總結

預設引數 應從右至左逐個定義,否則無效 內聯函式 類中任何函式都認定為內聯函式,除迴圈語句和switch外,關鍵字inline,優點 減少了呼叫開銷 加快了程式執行速度 缺點 增加程式 的大小 函式過載 有相同的函式名,但形參個數或者型別不同,編譯器會根據情況自動匹配型別,叫做函式過載 過載函式個數...

彙編基礎知識總結(一)

學習了王爽老師的 組合語言 覺得自己應該把知識串一串。首先cpu只能識別機器語言 01010101010 由於對人類非常不友好,所以組合語言就產生了。於是在產生彙編後,計算機是不會明白組合語言的,所以我們又要乙個翻譯員,那就是編譯器。就這樣,組合語言也能完成機器語言的工作。發展到現在,彙編由三類指令...