『壹』 假若CPU向外輸出20位地址,則它能直接訪問的存儲空間是多大如何計算
假若CPU向外輸出20位地址,則它能直接訪問的存儲空間可達1MB。
PC機在使用過程中突然斷電,RAM中存儲的信息將全部丟失(不論是SRAM還是DRAM)。外存儲器中的信息首先被調入內存中,才能被CPU處理。假若CPU向外輸出20位地址,則它能直接訪問空間可達220=1MB。
公式是:「可直接定址的物理地址空間=2^地址線的根數」後面的單位是Byte。2^20(2的20次方)=1,048,576Byte,1M=1024Bt=1024*1024Byte=1048576Byte由此可知定址空間為1M了。
(1)間接定址訪問的空間擴展閱讀:
1、立即定址(立時定址、立即操作數)
指令中直接給出了操作數,操作數緊跟在操作碼的後面,在取出指令的同時,也就取出了操作數。立即有操作數可供操作之用,所以稱為立即操作數,或立即定址。
立即定址的指令執行起來很快,CPU將數據與指令一起從存儲器取出,不必通過定址計算就獲得了操作數。立即定址也便於程序員使用。但是,因為數據和地址都是固定的,所以這種定址方式靈活性最差。
立即定址方式可用來提供常數,設置初始值等。
2、直接定址
指令中的地址碼是操作數的有效地址,用這個有效地址訪問一次存儲器便獲得操作數,這種定址方式稱為直接定址。
因為不需要任何定址計算,所以稱指令帶有操作數的有效地址的定址方式為直接定址。通常說定址的范圍就是用這個地址直接訪問存儲空間的大小,它也受到地址欄位長度的限制。
對於使用次數很少又不需要做什麼變化的地址碼,可採用直接定址方式。
3、間接定址
間接定址方式意味著指令中的地址欄位使操作數地址的地址,即操作數的地址是間接提供的,通常在指令格式中劃出一位作為直接定址或間接定址的標志位,間接定址用標志符@指出。
CPU先從存儲器中取出含有間接地址的指令,然後訪問間接地址單元,從中取出有效地址。CPU需要多執行一次訪問存儲器操作,所以間接定址比直接定址執行速度要慢。
參考資料:網路-定址概念
『貳』 寄存器直接定址和間接定址的區別
一、方式不同
1、直接定址:在指令格式的地址的欄位中直接指出操作數在內存的地址。
2、間接定址:指令地址欄位的形式地址D不是操作數的真正地址,而是操作數地址的指示器,或者說是D單元的內容才是操作數的有效地址。
二、特點不同
1、直接定址:操作數的地址直接給出而不需要經過某種變換,在指令中直接給出參與運算的操作數及運算結果所存放的主存地址,即在指令中直接給出有效地址。
2、間接定址:需要以寄存器符號的形式來表示,且在寄存器名稱前面加上間接定址符號「@」。
三、原理不同
1、直接定址:操作數存放在數據段中,所以,其物理地址將由數據段寄存器DS和指令中給出的有效地址直接形成,但如果使用段超越前綴,那麼,操作數可存放在其它段。
2、間接定址:在直接定址的基礎上面建立起來的,也就是直接定址得到的數據是一個地址,通過這個地址找到最終的數據,也就是兩次定址,第一次得到的是地址,第二次才是目標數據。