2013-03-16 94 views
0

我知道有幾個問題已經解決了這個問題。但是,我的問題在某種程度上有所不同。假設我必須獲得存儲在寄存器中的值(十六進制)的LSB;例如;MIPS;得到十六進制值的LSB

如果寄存器$ T0包含值0xA4,我需要獲得並存儲該值4

如果寄存器$ T0包含價值爲0xBF,我需要獲取並存儲值F

我明白按位AND操作適用於十進制值。有人可以提供一些關於我如何獲得LSB的幫助嗎?

親切的問候

+2

你想$ t0 AND 0x0F – 2013-03-16 22:17:58

+0

「我明白按位AND操作十進制值。」 - 普通的CPU不處理十進制。他們處理二進制。 – Mat 2013-03-16 22:19:04

+0

謝謝Eugen和Mat。馬特,這對我來說非常愚蠢。謝謝你糾正我。 – Triple777er 2013-03-16 22:27:05

回答

2

您可以輕鬆從要提取LSB本身這樣的數字:

0xA4和爲0x0F

是一樣的(二進制)

10100100B和00001111

這基本上意味着,只有最後四位數字將從二進制數來提取,那就是LSB你想要的。

1

所有的二元運算工作沿着W¯¯通用寄存器/口罩這僅僅是純數字(不管它們的底層基礎再版的)
雖然86並不MIPS你應該有類似這

and EAX, 0xF