看板 ASM 關於我們 聯絡資訊
有個陣列的起始位址是 十進位的 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