Re: [理工] [計組]-mips 組語
※ 引述《NOtWorThy ()》之銘言:
: 假設 $t1:0x1000 0000
: $t2:0x1000 0100 假設位址0x1000 0100存0xFFFF FFFF
: a) b)
: lb $t0, 0($t1) lb $t0, 0($t1)
: sw $t0, 0($t2) sb $t0, 0($t2)
: 1)假設位址0x1000 0000存12 34 56 78
: 問執行完少面兩道指令後$t2值是多少?
: ans: a) 0x0000 0012 //why not 0x0000 0078 ?
: b) 0x12FF FFFF //why not 0xFFFF FF78 ?
: 煩請高手賜教
: 感激不盡~!
我的想法
a.
位址t1:0x1000 0000存12 34 56 78
t1位址 0 1 2 3
內容 12 34 56 78
lb 之後 t0 = 12
由於sw指令是儲存一個字組所以要補0(載入是byte儲存是word)
b.
位址t2:0x1000 0100存FF FF FF FF
t2位址 0 1 2 3
內容 FF FF FF FF
lb 之後 t0 = 12
因為sb指令是儲存一個byte,所以直接寫入即可(載入是byte儲存也是byte)
有錯請指教:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.40.115.180
→
01/07 14:04, , 1F
01/07 14:04, 1F
推
01/08 00:32, , 2F
01/08 00:32, 2F
→
01/08 00:32, , 3F
01/08 00:32, 3F
回NOtWorThy
我是照著寫組語的觀念去解,倒是沒考慮跟ENDIAN有沒有關
補充a小題
lb 之後 t0 = 12 (t0存的是byte格式)
sw是儲存一個word指令
因此需要將t0先擴展成word,再存入t2的位址
4個byte = 1個word
byte: 12
word: 00 00 00 00 12
寫入t2
前: t2位址 0 1 2 3
內容 FF FF FF FF
後: t2位址 0 1 2 3
內容 00 00 00 12
若結果為 00 12 FF FF(只有寫入2byte=半word),則不符合sw指令
以上有錯請指教:)
※ 編輯: doubleday 來自: 114.40.119.163 (01/08 10:42)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):