-2
set 0xDEADBEEF, %o1 

set 0x13579246, %o2 

xor %o1, %o2, %o1 

レジスタ o1 には何が入りますか?

set 0xDEADBEEF, %o1 

set 0x13579246, %o2 

and %o1, %o2, %o1

レジスタ o1 には何が入りますか?

4

1 に答える 1

0

それぞれ CDFA2CA9 と 12059246 です。どちらもビット単位の操作であるため、アーキテクチャの依存関係はありません。参照: http://en.wikibooks.org/wiki/SPARC_Assembly/Arithmetic_Instructions#Logic_Instructions

実際の計算について:

ご了承ください:

0x0 == 0b0000
0x1 == 0b0001
0x2 == 0b0010
...
0xf == 0b1111

ビット演算では、2 のべき乗である基数の各桁は独立しているため、基数のテーブルを作成するのは簡単です。

基数 2 (^ は xor、& は and を意味します):

& 0 1
0 0 0
1 0 1

^ 0 1
0 0 1
1 1 0

そして基数 16 (16 進数) では:

and 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
0   0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
1   0   1   0   1   0   1   0   1   0   1   0   1   0   1   0   1
2   0   0   2   2   0   0   2   2   0   0   2   2   0   0   2   2
3   0   1   2   3   0   1   2   3   0   1   2   3   0   1   2   3
4   0   0   0   0   4   4   4   4   0   0   0   0   4   4   4   4
5   0   1   0   1   4   5   4   5   0   1   0   1   4   5   4   5
6   0   0   2   2   4   4   6   6   0   0   2   2   4   4   6   6
7   0   1   2   3   4   5   6   7   0   1   2   3   4   5   6   7
8   0   0   0   0   0   0   0   0   8   8   8   8   8   8   8   8
9   0   1   0   1   0   1   0   1   8   9   8   9   8   9   8   9
A   0   0   2   2   0   0   2   2   8   8   A   A   8   8   A   A
B   0   1   2   3   0   1   2   3   8   9   A   B   8   9   A   B
C   0   0   0   0   4   4   4   4   8   8   8   8   C   C   C   C
D   0   1   0   1   4   5   4   5   8   9   8   9   C   D   C   D
E   0   0   2   2   4   4   6   6   8   8   A   A   C   C   E   E
F   0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

xor 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
0   0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
1   1   0   3   2   5   4   7   6   9   8   B   A   D   C   F   E
2   2   3   0   1   6   7   4   5   A   B   8   9   E   F   C   D
3   3   2   1   0   7   6   5   4   B   A   9   8   F   E   D   C
4   4   5   6   7   0   1   2   3   C   D   E   F   8   9   A   B
5   5   4   7   6   1   0   3   2   D   C   F   E   9   8   B   A
6   6   7   4   5   2   3   0   1   E   F   C   D   A   B   8   9
7   7   6   5   4   3   2   1   0   F   E   D   C   B   A   9   8
8   8   9   A   B   C   D   E   F   0   1   2   3   4   5   6   7
9   9   8   B   A   D   C   F   E   1   0   3   2   5   4   7   6
A   A   B   8   9   E   F   C   D   2   3   0   1   6   7   4   5
B   B   A   9   8   F   E   D   C   3   2   1   0   7   6   5   4
C   C   D   E   F   8   9   A   B   4   5   6   7   0   1   2   3
D   D   C   F   E   9   8   B   A   5   4   7   6   1   0   3   2
E   E   F   C   D   A   B   8   9   6   7   4   5   2   3   0   1
F   F   E   D   C   B   A   9   8   7   6   5   4   3   2   1   0

最初の方法は、32 回の非常に単純な計算を行うことを意味し (2 進数に簡単に変換してから 16 進数に再変換した後)、2 番目の方法は、事前に準備できる場合とできない場合があるテーブルで 8 回のルックアップを行うことを意味します。

于 2013-04-25T08:13:55.140 に答える