組合語言筆記02 暫存器 CPU工作原理

2022-07-24 11:06:19 字數 1677 閱讀 6904

典型cpu的構成

乙個典型的cpu是由運算器、控制器、暫存器等器件構成。在cpu中:

8086cpu的通用暫存器

8086cpu的所有cpu都是16位的,可以存放2個位元組。

為了保證相容,8086cpu通用暫存器ax,bx,cx,dx可划為兩個可獨立使用的8位暫存器來使用。

字在暫存器中的儲存

8086cpu可以一次性處理兩種尺寸的資料。一種是位元組(byte),可以存在8位暫存器中,一種是字(word),可以存在16位暫存器中。

幾條簡單的彙編指令

總結:

實體地址

記憶體位址空間是乙個線性空間,每個記憶體單元都有唯一的位址,稱為實體地址。

cpu通過位址匯流排送入暫存器的,必須是乙個記憶體單元的實體地址。必須在cpu內部形成實體地址。

8086cpu是16位結構的。表現在:

(1). 運算器

一次最多可以處理16位的資料。

(2). 暫存器的最大寬度為16位。

(3). 暫存器和運算器之間的通路是16位的。

8086cpu的位址匯流排寬度為20位,可以傳送20位位址,達到1m定址能力。8086cpu又是16位結構的。8086cpu採用兩個16位位址合成的方式來形成20位的實體地址。

段 記憶體並沒有分段,而是cpu使用"分段"的方式管理記憶體。

基礎位址(段位址da*16)+偏移位址(ea)=實體地址

基礎位址(段的起始位址)是16的倍數。偏移位址為16位,所以乙個段的最大長度最大為64kb。

可以根據需要,將位址連續、起始位址位16的倍數的一組記憶體單元定義為乙個段。

"資料在21f60h記憶體單元中"的表述:

"資料存在記憶體2000:1f60單元中"或"資料存在記憶體的2000段中的1f60單元中"

段暫存器

8086cpu有4個段暫存器:cs、ds、ss、es。

cs和ip是指示了cpu當前要讀取指令的位址。cs為**段暫存器,ip為指令指標暫存器。

8086cpu的工作過程:

(1). 從cs:ip指向的記憶體單元讀取指令,讀取的指令進入指令緩衝器;

(2). ip自動指向下一條指令;

(3). 執行指令。(轉到步驟(1), 重複這個過程)

修改cs、ip的指令

(1). mov指令不能用於設定cs、ip的值。8086cpu使用jmp命令(轉移指令)來改變cs、ip的值。

(2). "jmp 段位址: 偏移位址" 修改cs和ip

"jmp 某一合法暫存器" 修改ip

8086cpu不支援 "jmp 常量"指令。

debug的幾個常見指令

組合語言 暫存器

乙個典型的cpu由運算器 控制器 暫存器等器件組成,這些器件靠內部匯流排相連。通用暫存器 ax bx cx dx 段位址暫存器 cs ds es ss 專用暫存器 bp sp si di 指令指標暫存器 ip 標誌暫存器 psw ah al ax accumulator 累加暫存器 bh bl bx...

組合語言 暫存器

乙個cpu由暫存器,運算器,控制器組成,暫存器負責儲存資料。通用暫存器 ax,bx,cx,dx。8086cpu的暫存器都是16位的,能存放兩個位元組。乙個暫存器又能分為兩個部分,乙個高位位元組如ah,還有乙個地位位元組如al。這兩個部分可以單獨看成乙個八位暫存器來用。當暫存器當整體來看時,它可以進行...

組合語言 暫存器

ax,bx,cx,dx 這4個暫存器通常用來存放一般性的資料,被稱為通用暫存器。8086cpu這5個暫存器都可以分為兩個可以獨立使用的8位暫存器來用 ax的低8位 0 7 構成al暫存器,高8位 8 15 構成了ah暫存器。ah和al暫存器是可以獨立使用的8位暫存器。考慮相容性8086cpu可以一次...