簡單的彙編指令
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中的資...