80x86微處理器的定址方式小結

2021-10-22 14:00:07 字數 2381 閱讀 9014

80x86微處理器的定址方式小結

80x86微處理器是美國intel公司生產的微處理器系列,是2023年正式推出的16位微處理器晶元。

80x86的定址方式包括兩方面的內容:一是與資料有關的定址方式;另乙個是與轉移位址有關的定址方式。狹義的講,定址方式就是指與資料有關的定址方式,即尋找運算元的位址方式,根據運算元的位址找到運算元。通常情況下,對初學者來說,第一種定址方式更為常用,因此在這裡只總結與資料有關的定址方式。

80x86的定址方式有以下七種:

一 、立即定址方式(immediate addressing)

運算元直接存放在指令中,緊跟在操作碼之後,它作為指令的一部分存放在**段裡,這種運算元稱為立即數。立即定址方式也稱為立即數定址方式,它經常用於給暫存器賦初值,並且只能用於源運算元字段,不能用於目的運算元字段。

如 mov ax ,3064h

指令執行後,(ax)=3064h

二 、暫存器定址方式(register addressing)

運算元在暫存器中,指令指定暫存器號。

如 mov ax ,bx

如指令執行前(ax)=3064h,(bx)=1234h;則指令執行後,(ax)=1234h,(bx)保持不變。

我們知道,運算元位址是由段基位址和偏移位址相加而得到的。在80x86裡,把運算元的偏移位址稱為有效位址(effective address,ea),

ea=基址+(變址×比例因子)+位移量

基址:存放在基址暫存器中的內容。它是有效位址中的基址部分。通常用來指向資料段中陣列或字串的首位址。

變址:存放在變址暫存器中的內容。通常用來訪問陣列中的某個元素或字串中的某個字元。

位移量:存放在指令中的乙個8位或16位的數,不是立即數,而是乙個位址。

比例因子:386及其後繼機型新增加的定址方式中的術語,其值可為1,2,4或8。80x86處理器系列中沒有比例因子。

80x86定址時有效位址的四種組分

四種組分 80x86處理器

基址暫存器 bx,bp

變址暫存器 si,di

位移量 0,8,16位

比例因子 無

下述各種定址方式都是因為求取有效位址(ea)途徑不同而有所差別的。

三 、直接定址方式(direct addressing)

運算元的有效位址只包含位移量一種成分,位移量的值即運算元的有效位址。

如 mov ax,[2000h]

四 、暫存器間接定址方式(register indirect addressing)

運算元的有效位址只包含基址暫存器內容或變址暫存器內容的一種成分。

如 mov ax,[bx]

五 、暫存器相對定址方式(register relative addressing)

運算元的有效位址為含基址暫存器內容或變址暫存器內容和指令中指定的位移量之和。

如 mov ax,count[si] 也可表示為mov ax,[count+si]

六 、基址變址定址方式(based indexed addressing)

運算元的有效位址為乙個基址暫存器內容和乙個變址暫存器內容之和。

如 mov ax,[bx][di] 也可表示為mov ax,[bx+di]

七 、相對基址變址定址方式(relative based indexed addressing)

運算元的有效位址為乙個基址暫存器內容與乙個變址暫存器內容和指令中指定的位移量之和。

如 mov ax,mask[bx][di]

也可表示為mov ax,mask [bx+di] 或mov ax,[mask+bx+di]

由於80x86處理器系列沒有比例因子的概念,因此另外三種定址方式(比例變址定址方式、基址比例變址定址方式和相對基址比例變址定址方式)在此不作總結。

注意事項總結:

(1)       80x86中,除暫存器bp的預設段為堆疊段ss暫存器之外,其他暫存器和位移量對應的預設段都為資料段ds暫存器。

(2)       目的運算元與源運算元型別要匹配,兩者字長要一致。(錯例,下同mov ah,bx mov ah,3064h)

(3)       立即數不能直接傳送給段暫存器,也不能作目的運算元。(mov ds,4000h mov 12,al)

(4)       兩個運算元不能同時為記憶體運算元。(mov [bx],[si] mov [1500h],[si])

(5)       不能對段暫存器進行加1操作。(inc ds)

(6)       cs不能用作目的暫存器。(mov cs,ax)

(7)       不允許使用ax,cx和dx存放有效位址ea。(mov ax,[cx])

(8)       基址變址定址方式中必須是乙個基址暫存器和乙個變址暫存器的組合。

(mov ax,[bx][bp] mov ax,[si][di])

80x86微處理器與資料有關的定址方式

80X86定址方式

1 與定址相關的暫存器 8086 暫存器 段暫存器cs ds es ss 基址暫存器bx bp 變址暫存器di si 專用暫存器ip sp 具體每個暫存器的作用就不仔細介紹了。80386 及其以上的暫存器 段暫存器cs ds es ss fs,gs 基址暫存器eax ebx ecx edx ebp ...

80X86定址方式總結

一 概論 擇子存放在六個段暫存器 cs,ss,ds,es,fs,gs 中 段總是由 cs 段暫存器來指示 堆疊段總是由 ss 段暫存器來指示 字元處理指令總是使用 es 段暫存器作為目標運算元的段暫存器 一般的資料段可用 ds es fs gs來指示,但 ds 作為資料段的預設段暫存器,用它來定址比...

80X86定址方式總結

80x86定址方式總結 sandrain zeq的專欄 部落格頻道 csdn.net 一 概論 擇子存放在六個段暫存器 cs,ss,ds,es,fs,gs 中 段總是由 cs 段暫存器來指示 堆疊段總是由 ss 段暫存器來指示 字元處理指令總是使用 es 段暫存器作為目標運算元的段暫存器 一般的資料...