機器語言-組合語言-高階語言
組合語言特點:
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中的資...