簡體   English   中英

lui MIPS的分解

[英]Break down of lui MIPS

我想弄清楚ori t1,100000在 MIPS 中是如何分解的。 MIPS 說它變成 .

lui $1,1
ori $1,$1,34464
or $9,$9,$1

我不確定它是如何得到lui的值 1 和ori的值 34464 的。

如果你用任何計算器將 100000 轉換為十六進制,你會得到

100000=0x186a0

它的大小優於 16 位,在 MIPS 中,立即數不能大於 16 位。 我們不能在一條指令中輸入這個值。

看看不同的上部和下部。

0x186a0=0x10000+0x86a0
= (0x1<<16)+0x86a0

0x86a0=34464

現在我們擁有編寫代碼所需的一切。

# store 0x10000==1<<16 in an intermediate register with lui (load upper immediate)
# MIPS asm uses $1 (or $at) as intermediate register
lui $1,1
# content of $1 is 0x00010000
ori $1,$1,34464
# nor we can OR this register with t1 (also called $9)
or $9,$9,$1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM