(一)假設一計算機(只能儲存整數),2 個連續bytes 構成一個word,
整數以二進位數方式儲存,資料表示則以2'的補數方式表示。一指令由16 位元組成,
指令格式如下:
opcode (4) x(1) y(1) address /disp (10)
其中x=0 採用直接定址,
x=1 採用間接定址;
y=0 採用程式計數(Program-counter Based)定址,
y=1 採用基底(Base-relative Based)定址,
請問假設只考慮直接定址,
記憶體可定址到的大小為何?每一記憶體位置可儲存資料的長度為何?
可儲存整數的範圍、指令暫存器(Instruction Register, IR)的長度為何?
(二)在一計算機結構中,一指令由24位元組成,其中6個位元為操作碼(Operation Code)
6個位元為各種定址方式之表示,12個位元為位址(Address)或位移(Displacement)
給予記憶體和暫存器資料(以16 進位表示)如下:
(3300)=001800 /*表示記憶體位址3300 之內容為001800*/
(3630)=003300
(6690)=103000
(0300)=003630
(B) =006000
(PC) =003000
(X) =000000
假設LDA 指令係將指定的記憶體位址內資料載入累積器,請寫出執行
i. LDA 300(採用直接定址);
ii. LDA300(300 為memory address,採用PC-relative 定址,
目標位址(TargetAddress)的值為PC 的值加上位移值(Displacement));
iii.LDA@630, X
(630 為memory address,採用PC-relative,X 表示索引,@表示間接定址);
iv. LDA#630
後暫存器A 之內容。
謝謝,麻煩各位了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.109.120
※ 編輯: wakke 來自: 61.231.109.120 (08/18 01:15)