SPARC 将名称注册为二进制
SPARC register names to binary
所以在SPARC V8中,目的寄存器(rd)占用了指令的5位(25th-29th)。我的问题是:是否有一个文件将每个寄存器名称(比如 %i1)与其各自的 5 位二进制文件(比如 01010)相关联?我找不到这样的东西...
寄存器编号0-7为%g0-%g7,8-15为%o0-%o7,16-23为%l0-%l7,24-31为%i0-%i7
http://www.gaisler.com/doc/sparcv8.pdf
请注意 Sparc 使用寄存器 windows... 所以您正在寻址寄存器 window 而不是寄存器文件本身。
数据格式定义在 Sparc V8 手册的第 18 页。 Sparc 使用 LSB 0 位表示法。寄存器 window 位置名称的顺序在第 24 页。
例如,一个字节是 7 6 5 4 3 2 1 0,其中 0 是最低位。
这又意味着指令映射如下。
0 00000 %g0
1 00001 %g1
2 00010 %g2
3 00011 %g3
4 00100 %g4
5 00101 %g5
6 00110 %g6
7 00111 %g7
8 01000 %o0
9 01001 %o1
10 01010 %o2
11 01011 %o3
12 01100 %o4
13 01101 %o5
14 01110 %o6
15 01111 %o7
16 10000 %l0
17 10001 %l1
18 10010 %l2
19 10011 %l3
20 10100 %l4
21 10101 %l5
22 10110 %l6
23 10111 %l7
24 11000 %i0
25 11001 %i1
26 11010 %i2
27 11011 %i3
28 11100 %i4
29 11101 %i5
30 11110 %i6
31 11111 %i7
所以在SPARC V8中,目的寄存器(rd)占用了指令的5位(25th-29th)。我的问题是:是否有一个文件将每个寄存器名称(比如 %i1)与其各自的 5 位二进制文件(比如 01010)相关联?我找不到这样的东西...
寄存器编号0-7为%g0-%g7,8-15为%o0-%o7,16-23为%l0-%l7,24-31为%i0-%i7
http://www.gaisler.com/doc/sparcv8.pdf
请注意 Sparc 使用寄存器 windows... 所以您正在寻址寄存器 window 而不是寄存器文件本身。
数据格式定义在 Sparc V8 手册的第 18 页。 Sparc 使用 LSB 0 位表示法。寄存器 window 位置名称的顺序在第 24 页。
例如,一个字节是 7 6 5 4 3 2 1 0,其中 0 是最低位。
这又意味着指令映射如下。
0 00000 %g0
1 00001 %g1
2 00010 %g2
3 00011 %g3
4 00100 %g4
5 00101 %g5
6 00110 %g6
7 00111 %g7
8 01000 %o0
9 01001 %o1
10 01010 %o2
11 01011 %o3
12 01100 %o4
13 01101 %o5
14 01110 %o6
15 01111 %o7
16 10000 %l0
17 10001 %l1
18 10010 %l2
19 10011 %l3
20 10100 %l4
21 10101 %l5
22 10110 %l6
23 10111 %l7
24 11000 %i0
25 11001 %i1
26 11010 %i2
27 11011 %i3
28 11100 %i4
29 11101 %i5
30 11110 %i6
31 11111 %i7