[理工] 張凡 計組 28頁練習

看板Grad-ProbAsk作者 (jojo)時間7年前 (2018/07/20 22:12), 編輯推噓3(307)
留言10則, 5人參與, 7年前最新討論串1/1
https://imgur.com/cvU02Yj
題目如圖 請問在(1)時, a. lb $t0,0($t1)→這時候$t0的值是0x00000012 sw $t0,0($t2)→這時候0x10000010 地址的值就變成0x00000012 是這樣嗎? 我想問 b. lb $t0,0($t1)→這時候$t0的值也是0x00000012 sb $t0,0($t2)→這時候0x10000010 地址的值為什麼就變成0x12FFFFFF ? 我看課本寫 sb(store byte) 指令會將所指定暫存器最右邊的位元組存入記憶體 怎麼會出現FF? 如果是題目上 Assume that the memory..... $t2 is initialized to 0xFFFFFFFF 那在 a.的時候的值 為什麼不是 0xFFFFFF12? 再麻煩各位先進解答疑惑,先謝謝大家~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.224.101.19 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1532095974.A.FD8.html

07/20 22:30, 7年前 , 1F
a是sw 一次store一個word(4個byte) 所以ffffffff會被覆
07/20 22:30, 1F

07/20 22:30, 7年前 , 2F
蓋過去 b則是sb 一次store一個byte 所以會將最右邊的
07/20 22:30, 2F

07/20 22:30, 7年前 , 3F
一個byte:12 存入t2 一樣遵守big endian 所以t2記憶體
07/20 22:30, 3F

07/20 22:30, 7年前 , 4F
位置最小的byte:最左邊的ff 會被12覆蓋
07/20 22:30, 4F

07/20 22:38, 7年前 , 5F
因為sb只寫入了一個byte啊
07/20 22:38, 5F

07/21 08:09, 7年前 , 6F
a.對的是這樣。b.因為a的sw是一次放一個word也就是4個byt
07/21 08:09, 6F

07/21 08:09, 7年前 , 7F
es所以將暫存器的16進位8個數字全數放入記憶體位址0x1000
07/21 08:09, 7F

07/21 08:09, 7年前 , 8F
0010因而將原記憶體內容全部覆蓋
07/21 08:09, 8F

07/23 20:44, 7年前 , 9F
謝謝樓上各位的解說!
07/23 20:44, 9F

07/28 19:04, 7年前 , 10F
(2)a.有打錯嗎?是0x00000080嗎
07/28 19:04, 10F
文章代碼(AID): #1RKUtc_O (Grad-ProbAsk)