羅雲彬 win32組合語言學習筆記

2021-05-22 11:10:45 字數 1312 閱讀 4947

第一章    背景知識

win32的軟硬體平台

從微處理器的指令系統來看,有兩種分支走向,一種是cisc;一種是risc.cisc即複雜指令

系統計算機。從pc誕生以來,人們一直沿用cisc指令集方式。它的指令不等長,指令

的條數比較多,程式設計和設計處理器時都較為麻煩。在cisc之後,人們發現了risc,即精

簡指令系統。這種指令系統採用等長的指令,且指令數較少,通過簡化指令可以讓計算

機的結構更為簡單,今兒提高運算數度。

windows程式並不直接訪問螢幕,印表機和鍵盤等硬體裝置,windows虛擬了所有的硬

件。由於記憶體和虛擬記憶體的使用,每個程式都可以使用4gb的位址空間,dos程式設計時必

需考慮的640kb記憶體問題已經成為歷史。

80386處理器有3種工作模式:實模式,保護模式和虛擬86模式。實模式和虛擬86模式是

為了和8086處理器相容而設定的。在實模式下,80386就相當於乙個快速的8086處理

器。保護模式是80386的主要工作模式。在此方式下,80386可以定址4gb的位址空間

同時,保護模式提供了80386先進的多工,記憶體分頁管理和優先順序保護等級制。為了

在保護模式下繼續提供和8086的相容,80386又設計了一種虛擬86模式,以便可以在

保護模式的多工條件下,有的任務執行32位程式,有的任務執行ms-dos程式。在虛

擬86模式下,同樣支援任務切換,記憶體分頁管理和優先順序,但記憶體的定址方式和8086

相同,也是可以定址1mb的空間。

實模式是80386處理器工作的基礎,在實模式下可以通過指令切換到保護模式,也可以

從保護模式退回到實模式。虛擬86模式以保護模式為基礎,在保護模式和虛擬86模式之

間可以互相切換,但不能從實模式直接進入虛擬86模式或從虛擬86模式直接退到實模式。

80386被復位或加電的時候以實模式啟動。

在保護模式下,80386還支援優先順序機制,不同的程式可以執行在不同的優先順序上。優先順序

共分0-3 4個級別,作業系統執行在最高的優先順序0上,應用程式則執行在比較低的級別

上;配合良好的檢查機制後,既可以在任務間實現資料的安全共享也可以很好地隔離各個

任務。從實模式切換到保護模式是通過修改控制暫存器cro的控制位pe(位0)來實現的。

在這之前還需要建立保護模式必須的一些資料表,如全域性描述符表gdt和中斷描述符表

idt等。

dos作業系統執行於實模式下,而windows作業系統執行於保護模式下。

虛擬86模式是以任務形式在保護模式上執行的,在80386上可以同時支援由多個真正的

80386任務和虛擬86模式構成的任務。

Win32組合語言教程(1)

一 引言 win32應用程式一般使用c語言程式設計,但是在某些需要進行深層程式設計的情況下,例如win32應用程式執行機制分析 病毒清除 加密解密等深層程式設計,或者對於某些速度要求較高的程式,需要使用組合語言 甚至機器語言 直接編寫win32應用程式。win32應用程式雖然和其他32位應用程式 例...

Win32組合語言程式設計 彈出訊息框

回憶了一下組合語言的專案,通過寫乙個 windows 程式,程式執行時將彈出乙個訊息框並顯示 assembly is great 來回憶windows api的使用方法。kernel32.dll中的函式主要處理記憶體管理和程序排程 user32.dll中的函式主要控制使用者介面 gdi32.dll中...

Win32 組合語言系列教程 導航選單

win32彙編系列教程是由本人學習 intel 組合語言程式設計 第五版 時根據學到的理論技術,結合實踐編寫的一套簡潔明瞭的彙編入門學習手冊,該手冊中摒棄了過多的無用文字描述,筆者通過理解文中知識點,並通過自己的想法將知識點融入到每乙個小小的案例中,讓學習彙編從此不在困難。文章標題 win32彙編 ...