彙編學習之路之 8086CPU

2021-06-29 14:28:45 字數 1568 閱讀 7613

8086 cpu 給出實體地址的方法

8086 cpu 有20位位址匯流排,可以傳送2位位址,達到1 mb的定址能力。8086 cpu又是16位結構,在內部一次性處理,傳送,暫時儲存的位址是 16位。

從8086 cpu的內部結構來看,如果將位址從內部簡單的發出,那麼,它只能送出16位位址,表現出的定址能力只有64 kb。

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

下圖為8086 cpu縣官部件的邏輯結構:

段位址和偏移位址通過內部匯流排送入乙個稱為位址加法器的部件;

c>

位址加法器將2個16位位址合成乙個20位的實體地址;

d>

位址加法器通過內部匯流排將20位實體地址送入輸入輸出控制電路;

e>

輸入輸出控制電路將20位實體地址送上位址匯流排;

位址加法器

採用 實體地址

= 段位址

x16 + 偏移位址

的方法用

段位址和

偏移位址

合成實體地址

實體地址 = 段位址 x 16 + 偏移位址

的本質含義

是:cpu在訪問記憶體時,用乙個基礎位址(段位址 x 16) 和乙個相對於基礎位址的偏移位址相加,給出記憶體但單元的實體地址。

更一般來說,8086 cpu的這種功能是 「基礎位址+偏移位址 = 實體地址 」定址模式的一種具體實現方案。 8086 cpu中,段位址x 16 可以看作是基礎位址。

什麼是 段?

記憶體並沒有分段,段的劃分來自cpu,由於8086 cpu用「基礎位址(段位址x 16) + 偏移位址 = 實體地址」的方式給出記憶體單元的實體地址,使得我們可以用分段的方式來管理記憶體。 在程式設計時可以根據需要,將若干位址連續的記憶體單元看成是乙個段,用段位址x 16定位的起始位址(基礎位址), 用偏移位址定位段的記憶體單元。

注意:

a> 段位址 x 16 必然是16 的倍數,所以 乙個段的起始位址也一定是16的倍數;

b> 偏移位址為 16 位,16位位址的定址能為 64 kb,所以, 乙個段的長度最大為 64 kb。

~~~~~~~~~~~~~~~~~~   續

8086CPU彙編 顯示字串

在第8行第5列以紅色字型顯示 welcome to masm assume ds data,cs code data segment db welcome to masm 0 data ends code segment start mov ax,data mov ds,ax mov si,0 在8...

彙編基礎 8086CPU的執行方式

cpu內 注 不同的cpu暫存器的個數 結構是不同的。a 暫存器 暫存器是程式設計師主要能進行讀寫操作的部件。通過暫存器來實現對cpu的控制。8086所有的暫存器都是16位 16個二進位制位 的,可以存放2個位元組。8086總計14個暫存器 ax bx cx dx si di sp bp ip cs...

8086cpu物理定址

8086cpu有20位位址匯流排,可以傳送20位位址,達到 1mb定址能力。8086cpu 又是16位結構,在內部一次性處理 傳輸 暫時儲存的位址為16位。從8086cpu的內部結構來看,如果將位址從內部簡單地發出,那麼它只能送出16位的位址,表現出的定址能力只有64kb。8086cpu採用一種在內...