У меня очень простая процедура тестирования:
void test()
{
int a = 15;
int b = 17;
int c, d;
c = a + b;
d = a | c;
printf("%d", d);
}
Затем я генерирую объектный файл, а затем разбираю объектный файл, чтобы увидеть командное слово для операций ADD и OR следующим образом:
sparc-elf-objdump -d test.o
Полученный дизассемблер выглядит следующим образом:
test.o: file format elf32-sparc
Disassembly of section .text:
00000000 <test>:
0: 11 00 00 00 sethi %hi(0), %o0
4: 90 12 20 00 mov %o0, %o0 ! 0 <test>
8: 92 10 20 2f mov 0x2f, %o1
c: 82 13 c0 00 mov %o7, %g1
10: 40 00 00 00 call 10 <test+0x10>
14: 9e 10 40 00 mov %g1, %o7
18: 01 00 00 00 nop
Как вы можете видеть, они не являются ни командой ADD, ни инструкцией OR для поиска. Кто-нибудь идея, почему это так? Весьма запутанно ...
Большое спасибо,
Jim