完整意義上的指令應該由操作碼和運算元構成,實際中運算元經常存放在與指令不同的位置,定址指的就是根據指令本身和cpu當前狀態決定運算元位置,並獲取運算元的過程。假設指令為:
o p[
addr
]op [addr]
op[add
r]其中a dd
raddr
addr
即為形式位址,[ ]為訪存符號。所謂形式位址就是一種抽象意義的位址,可以是暫存器(指令裡的暫存器相當於數值化位址的巨集定義)、運算元或是實際位址等,依據指令的具體形式來確定形式位址。
圖1 常見定址模式總結
將上述定址模式中形式位址add
raddr
addr
與有效位址ea(effective address)的對應用圖2給出
圖2圖1、圖2只介紹了常見的定址模式,而圖3是定址模式更加完整的框架圖。例如利用基址暫存器br、變址暫存器ir、比例因子s和偏移量a可以對映
e a=
[br,
ir,s
,a]=
[br+
ir×s
+a]ea=[br,ir,s,a]=[br+ir×s+a]
ea=[br
,ir,
s,a]
=[br
+ir×
s+a]
只要根據此框架組合就可以得到不同的定址模式。
圖3 定址架構
段基位址儲存在段暫存器中,例如ds,cs,ss,es;有效位址由基址暫存器(例如bx、bp)和變址暫存器(例如di、si、ip等)進行對映,當然基址和變址暫存器也可用通用暫存器代替。
在計算機中引入如此繁多的定址方式的目的在於:
①打破現實約束:指令本身長度有限(常等於乙個機器字長),難以存放多個龐大的記憶體位址
②滿足靈活性要求:豐富的定址模式更適合程式設計中的實際需求。例如間接定址擴大了定址的範圍。
③滿足安全性要求:保護模式
總之,多種定址模式比直接基於平坦的線性空間進行程式設計更加適合工程實踐。
計算機系統知識總結
軟考第一章講了計算機系統知識,學習到了一些和硬體相關的知識,對計算機體系結構有了乙個大概的了解。讓我認識了cpu的具體結構,大致的工作流程,了解了資料在計算機內部的表現形式。尤其是機器數,反碼補碼的創造,是靈活與智慧型的表現。下面是思維導圖 根據不同的層次定了多個系統,本節介紹了指令系統,儲存系統,...
計算機系統概述總結
這兩天開始看了作業系統這本書,主要是因為學習linux時要對作業系統有一定的了解,而作業系統也是許多課程的基礎,看了之後才明白好多都是計算機基礎裡面的內容,而且對一些系統的構成 處理器暫存器 指令的執行 中斷 儲存器的層次機構 i o通訊技術都有了一定的了解,這裡需要總結一下計算機系統的一些基本知識...
計算機系統知識總結
軟考第一章講了計算機系統知識,學習到了一些和硬體相關的知識,對計算機體系結構有了乙個大概的了解。讓我認識了cpu的詳細結構,大致的工作流程,了解了資料在計算機內部的表現形式。尤其是機器數,反碼補碼的創造,是靈活與智慧型的表現。以下是思維導圖 依據不同的層次定了多個系統,本節介紹了指令系統,儲存系統,...