組合語言 手記4

2022-02-05 22:04:36 字數 1499 閱讀 5794

簡單的彙編指令

cpu執行後,暫存器中的資料改變為如下:

cpu訪問記憶體單元時要給出記憶體單元的位址。所有的記憶體單元構成的儲存空間是乙個一維的線性空間。 這個唯一的位址就是實體地址。

16位結構描述了乙個cpu具有一下幾個方面特徵:

1 運算器一次最多可以處理16位的資料。

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

3 暫存器和運算器之間的同路是16位的。

8086有20位位址匯流排,可傳送20位位址,定址能力為1m

8086內部為16位結構,它只能傳送16位的位址,表現出的定址能力卻只有64k。

8086cpu採用一種在內部用兩個16位位址合成的方法來形成乙個20位的實體地址。

位址加法器合成實體地址的方法:實體地址= 段位址*16+偏移位址

移位次數各種形式資料的關係:

1乙個資料的二進位制形式左移1位。相當於該資料乘以2;

2乙個資料的二進位制形式左移n位,相當於該資料乘以2的n次方。

錯誤認識:

記憶體被劃分成乙個乙個的段,每乙個段有乙個段位址。

正確認識:

記憶體並沒有分段,段的劃分來自於cpu,由於8086cpu用「段位址*16+偏移位址=實體地址」的方式給出記憶體單元的實體地址,使得我們可以用分段的方式來管理記憶體。

注意:1段位址*16 必然是 16的倍數,所以乙個段的起始位址也一定是16的倍數。

2偏移位址為16位,16位位址的定址能力為64k,所以乙個段的長度最大為64k。

小結:cpu訪問記憶體單元時,必須向記憶體提供記憶體單元的實體地址

8086cpu在內部用段位址和偏移位址移位相加的方法形成最終的實體地址。

cpu可以通過不同的方式 用 段位址加偏移位址 形成同乙個實體地址

在8086pc機中,儲存單元的位址用兩個元素來描述。即段位址和偏移位址。

資料在21f60h記憶體單元中,對於8086pc機的兩種描述。

a 資料存在記憶體2000:1f60單元中

b 資料存在記憶體的2000段中的1f60單元中。

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

組合語言 手記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中的資...