Re: [理工] [計組] 指令
※ 引述《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)
推
03/01 22:19, , 1F
03/01 22:19, 1F
後者
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)
推
03/02 00:19, , 2F
03/02 00:19, 2F
→
03/02 00:20, , 3F
03/02 00:20, 3F
→
03/02 02:11, , 4F
03/02 02:11, 4F
→
03/02 02:12, , 5F
03/02 02:12, 5F
推
03/02 19:05, , 6F
03/02 19:05, 6F
討論串 (同標題文章)