首頁>Club>
8
回覆列表
  • 1 # 守侯的溫暖

    定址方式一般有如下七種:

    1.立即定址


    立即(Immediate)定址,就是在指令中使用的運算元是常數,這個常數就包含在指令中。以下幾條指令都是立即定址的例子:

    MOV AL,0

    MOV AX,190

    MOV EAX,-1

    MOV EAX,0FFFFFFFFH

    這些指令碼中,都包含了立即數,如0,190,-1,0FFFFFFFFH。


    2.暫存器定址


    暫存器(Register)定址方式的運算元在CPU內部的暫存器中。使用暫存器定址,CPU不用訪問記憶體就可以取得或修改運算元。

    MOV BL,80 //目標運算元BL是暫存器定址

    MOV EAX,EBX //源運算元EBX和目標運算元EAX都是暫存器定址


    3.直接定址(CPU尋找記憶體中的運算元)


    除了立即定址和暫存器定址方式外,其他的幾種定址方式的運算元都在記憶體單元中,定址方式要說明的是CPU如何確定記憶體操 作數的地址,然後CPU再對該記憶體單元中的運算元進行處理。

    直接定址(Direct)定址就是指令中直接給出了運算元的地址。指令中使用變數時,就是直接定址。

    MOV EAX,dVal

    MOV dVal,EBX


    MOV EAX,[4000H] //直接給出記憶體所在地址


    在翻譯成機器指令後,變數是用它的地址而不是它的名字來表示的。地址外面加一對方括號,表示取這個地址中的內容。

    00401010 A1 11 40 40 00 MOV EAX,[00404011]

    00401015 89 1D 11 40 40 00 MOV [00404011],EBX

    CPU在執行指令的時候,可以直接從指令碼中取出地址,而不必經過計算或其他操作,所以叫做直接定址。


    4.暫存器間接定址


    採用暫存器間接(Indirect)定址方式的運算元的地址放在暫存器中。


    MOV ESI,00404011H //將記憶體地址儲存到暫存器中

    MOV EAX,[ESI]

    注意,MOV EAX,ESI和MOV EAX,[ESI]的區別。

    在8086/8088/80286等16位的CPU中,只有4個暫存器能用做寄

  • 2 # 使用者917376507636

    201的嗎

    一種是統一編址,即埠地址空間與儲存器地址空間合二為一的一種編址方式。這種編址方式使用將埠與儲存器單元同樣看待,使用儲存器訪問的指令進行 I/O 操作,因此指令多而靈活,缺點是埠地址要佔用一部分儲存器地址。


    另一種是埠獨立編址,即埠地址空間與儲存器地址空間各自獨立的一種編址方式。這種編址方式只有那些具有 I/O 讀寫控制線的處理器系統(如 8086 系統)才能使用。它有獨立的埠地址空間,因此不佔用儲存器地址空間,有獨立的 IO 輸入輸出指令,但指令一般定址方式較少,比較不靈活。

  • 中秋節和大豐收的關聯?
  • 俄羅斯屬於單一制國家嗎?