作者skyhigh8988 (Aesthetic)
看板ASM
標題[問題] 一個MIPS指令的問題
時間Tue Apr 5 13:50:58 2011
有個陣列的起始位址是 十進位的 4000000
換成二進位是 0000 0000 0011 1101 0000 1001 0000 0000
指令說要把這個載入
用了下列兩個指令
lui t1 0000 0000 0011 1101
ori t1 t1 0000 1001 0000 0000
我看不懂第二個為什麼是用ori欸
上來問一下 看有沒有高手解答一下
謝謝囉 感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.141.170.12
推 attomahawk:lui 載入 Address的上半部, 從31bit 到 16 bit。 04/05 14:20
→ attomahawk:ori 載入 Address的下半部, 從15 bit 到 0 bit。 04/05 14:20
推 attomahawk:如此一來,暫存器t1 才擁有完整的 32-bit address. 04/05 14:23
→ attomahawk:可以參考白算盤(Computer Org. and Design )的課本。 04/05 14:23
→ attomahawk:我的是英文版 3ed, 在p.96 有類似的課本例子。 04/05 14:25
推 christianSK:作ori這個動作等同於 load lower immediate 04/11 16:34
推 slayptter: lui 就是load upper immediate 04/18 22:32
→ slayptter: ori 就是or immediate 04/18 22:32
→ slayptter: 先做lui後,32bit數的前16bit都會是0,此時再or 一個只 04/18 22:38
→ slayptter: 有前16bit有值的數字(任意數字or 0還是任意數字),就 04/18 22:38
→ slayptter: 可完成32bit的數字組合 04/18 22:38
→ slayptter: 雖然已經經過11年了 ^U^ 04/18 22:38