作者compulsory (まけない!)
看板Grad-ProbAsk
標題Re: [理工] [計組] 指令
時間Tue Mar 1 18:30:30 2011
※ 引述《mqazz1 (無法顯示)》之銘言:
: assume that the register $t1 contains the address 0x1000 0000
: and the register $t2 contains the address 0x1000 0010
: lb $t0, 0($t1) lb $t0, 0($t1)
: a. sw $t0, 0($t2) b. sb $t0, 0($t2)
: assume that the data(in hexadecimal) at address 0x1000 0000 is
: 1000 0000 12 34 56 78
: what value is stored at the address pointed to by register $t2?
: assume that the memory location pointed to $t2 is initialized to 0xFFFF FFFF
: 請問這要怎麼算呀= =?
: 這是張凡重點直擊上 第24頁的題目
a.
目前記憶體
10000000 12 <-----------lb(load byte)
10000001 34 存放到暫存$t0
10000002 56 因為12的2近位表示法為
10000003 78 0001 0010
看第一個位數是1還是0(若1 則用1填滿32bit
(若0 則用0填滿32bit
所以現在$t0的值為:
0000 0000 0000 0000 0000 0000 0001 0010
sw 存$t0的值到$t2所指到的位置
所以 $t2所指到的位置的值為
0000 0000 0000 0000 0000 0000 0001 0010
b.
目前記憶體
10000000 12
10000001 34
10000002 56
10000003 78
跟a小題一樣 (lb而言)
現在暫存$t0的值為
0000 0000 0000 0000 0000 0000 0001 0010
--------- 1byte
sb(store byte)存一個byte回到memory |
|
所以現在$t2所指到的記憶體位值的值為 |
假設$t2的值為N 則 |
N 12 <--(覆蓋原本的FF)---------┘
N+1 FF
N+2 FF
N+3 FF
--
※ 編輯: compulsory 來自: 122.116.13.191 (03/01 18:34)
推 mqazz1:謝謝!! 可以再請問書上的2a 是0x00000080還是0xFFFFFF80 ? 03/01 22:19
後者
lb 至 $t0
80 = 1000 0000 第一個位數是1
用1擴充至32bit
1111 1111 1111 1111 1111 1111 1000 0000
※ 編輯: compulsory 來自: 122.116.13.191 (03/01 22:59)
推 mqazz1:sor 可以再請問一下 1000 0000這個是指80的二進位嗎? 03/02 00:19
→ mqazz1:80的二進位不是0101 0000嗎@@? 這樣第一個位數不就0了@@? 03/02 00:20
→ compulsory:題目不是給80808080 (hex)? 03/02 02:11
→ compulsory:80(hex)=1000 0000(bi) 03/02 02:12
推 mqazz1:謝謝!! 03/02 19:05