組合語言基礎

2021-09-25 23:19:31 字數 1310 閱讀 7323

暫存器

暫存器是處理器內部的高速緩衝區,用於暫時存放資料。

暫存器的分類:

透明暫存器:這類暫存器不需要程式設計師進行操作。

可程式設計的暫存器:這是我們程式設計師需要學習的這類暫存器又分為通用暫存器和專用暫存器

32位通用暫存器:eax ebx ecx edx edi esi ebp esp

16位通用暫存器:ax bx cx dx di si bp sp

8位通用暫存器:al ah bl bh cl ch dl dh

專用暫存器的種類

標誌暫存器:eflags

指令指標暫存器:eip

段暫存器:cs ds ss es gs fs

我們可以看到通用暫存器有8位16位和32位的,這是發展的結果,比如在乙個32的系統中eax暫存器包含32個位,其中al是eax的最後8位,ax是eax的最後16位,因此ax也是包含al和ah的。

下面是乙個圖來表示各種暫存器關係

16246589-db1a04ca767f426d.png

暫存器.png

16246589-d394f64dbdd73b94.png

暫存器結構.png

下面是我們通常使用的通用暫存器名稱

16246589-87d5e26a527d0dac.png

通用暫存器.png

計算機儲存器的分級

按照讀取速度進行分等級

硬碟->記憶體->快取->暫存器

這個順序表示訪問速度依次遞增的順序進行排序的並且儲存器的大小是依次遞減的但是**是依次遞增的,通常也是資料傳遞順序,乙個程式的執行首先從硬碟讀入記憶體,然後將程式的**按照順序取指執行進行操作。

記憶體記憶體又稱主儲存器,現在的記憶體通常是很大的,根據規定將主儲存器分為很多的儲存單元,每個儲存單元佔乙個位元組,按照儲存單元進行編址,從0開始進行編址,這樣每個儲存單元都有乙個唯一的位址,來標誌這個儲存單元,像這樣的位址我們稱之為實體地址。

16246589-854a97b87578fdfc.png

實體地址.png

程式的定址並不是按照實體地址進行定址,ia-32處理器有三種儲存模型,用於程式訪問儲存器。

平展儲存模型

段式儲存模型

實位址儲存模型

我們現在主要使用的是段式儲存模型,我們現在了解下這種儲存模型。

**段:表示存放**的即處理器需要執行的指令

資料段:表示存放資料的比如全域性變數

堆疊段:用來存放臨時位址和臨時變數的

這三個段每個都可以達到最大記憶體

指令指標暫存器eip:儲存程式執行到的位置順序執行時進行自增,時刻指向指令執行到的位置.

組合語言基礎

1.資料格式 26d 十進位制 1ah 十六進製制 42 o g 八進位制 以字母開頭的十六進製制常量前面必須加乙個0,以防止彙編器將其解釋為識別符號 2.盡量在表示式中使用圓括號顯式表明運算順序 3.彙編器大量使用 符號做為預定義符號的字首,因此應盡量避免在自己定義的標誌符前用 但 myfile為...

組合語言基礎

標誌暫存器flags of df iftf sfzf afpf cf標誌暫存器flags cf 進製標誌 pf 奇偶標誌 af 調整標誌 zf 零標誌 sf 符號標誌 of 溢位標誌 df 方向標誌 if 中斷允許標誌 tf 陷阱標誌 r8 r16 任意乙個8 16位通用暫存器 reg代表r8或r1...

彙編 1 2 組合語言基礎

1.彙編工作過程 程式設計師 彙編指令 編譯器 機器碼 計算機 2.組合語言組成 1 彙編指令 機器碼助記符,有對應的機器碼。2 偽指令 沒有對應的機器碼,由編譯器執行,計算機不執行。3 其他符號 如 等,編譯器識別,沒有對應的機器碼。組合語言的核心就是機器碼!3.儲存器 在一台pc機中,記憶體的作...