組合語言 手記1

2022-02-05 22:04:37 字數 1590 閱讀 4499

機器語言-組合語言-高階語言

組合語言特點:

1 與硬體相關

2 與機器指令一一對應

3 須詳細描述如何做

4 可移植性差

cpu功能結構:

匯流排介面部件biu

執行部件eu

cpu暫存器結構:

資料暫存器

指標及變址暫存器

段暫存器

控制暫存器

匯流排介面單元biu----完成cpu與主儲存器或外圍裝置之間的資訊傳送

執行單元eu----完成指令的執行

兩個單元獨立,並行工作,使指令的讀取與執行部分重疊,提高了指令的執行速度----指令流水線結構

資料暫存器(可以字或位元組形式訪問,例如ax的高位元組、低位元組分別用ah/al表示)

ax累加器 存放運算元和結果

bx基址暫存器 存放偏移量

cs計數暫存器 迴圈中計數

dx資料暫存器 雙字長時與ax組合成32位數

指標和變址暫存器(存放位址的偏移量,也可以存放運算元 但只能以字為單位訪問)

sp堆疊指標暫存器

bp基址指標暫存器

si源變址暫存器

di目的變址暫存器

段暫存器(存放相應段的段基址(段首址的高16位))

cs **段暫存器

ds 資料段暫存器

ss 棧段暫存器

es 附加段暫存器

控制暫存器

psw程式狀態暫存器:記錄系統執行中的各種狀態和資訊。由各種標誌位構成,反映運算後的結果特徵,將影響某種指令的執行。

20條位址線,最大為1mb

以位元組為單位變址,即乙個位元組資料占用乙個儲存單元

以字為單位儲存資料時,佔相鄰兩個單元,高8位存放在高位址位元組,低8位存放在低位址位元組

字單元的位址用它的低位址來表示

訪主存指令中應指出是位元組訪問還是字訪問

字單元的位址一般為偶數

段概念的引入

16位暫存器如何表示20位的位址?

採用儲存器位址分段的方法

段是最大長度為64kb的記憶體儲器塊

段的起始位址低4位必須為0

使用者可以用同時使用4個段,段間可以鄰接,重疊或不相鄰

**段存放當前程式的指令**

資料段存放程式涉及的源資料或結果

堆疊段是以「先入後出」為原則的資料區

附加段是輔助資料區,存放串或其他資料

組合語言 手記4

簡單的彙編指令 cpu執行後,暫存器中的資料改變為如下 cpu訪問記憶體單元時要給出記憶體單元的位址。所有的記憶體單元構成的儲存空間是乙個一維的線性空間。這個唯一的位址就是實體地址。16位結構描述了乙個cpu具有一下幾個方面特徵 1 運算器一次最多可以處理16位的資料。2 暫存器的最大寬度為16位。...

組合語言 手記7

cpu要讀取乙個記憶體單元的時候,必須先給出這個記憶體單元的位址 在8086pc中,記憶體位址由段位址和偏移位址組成。8086cpu中有乙個ds暫存器,通常用來存放要訪問的資料的段位址。mov al,0 mov已知的功能 1 將資料直接送入暫存器 2 將乙個暫存器中的內容送入另乙個暫存器中。3 將乙...

組合語言 手記8

棧有兩個基本的操作 入棧和出棧 入棧 將乙個新的元素放到棧頂 出棧 從棧頂取出乙個元素 棧頂的元素總是最 棧,需要出棧時,又最先被從棧中取出。棧的操作規則 lifo 8086cpu提供相關的指令來以棧的方式訪問記憶體空間。入棧出棧指令 push 入棧 pop 出棧 push ax 將暫存器ax中的資...