vak: (Default)
[personal profile] vak
Одной из целей добыть компьютер с процессором PowerPC было портонуть туда bintrace и глянуть выполнение машинных команд. Это дело успешно получилось. Вот пример трассировки программы типа "Hello World", написанной для простоты на ассемблере:
$ cc -c demo-powerpc32-linux.S
$ ld demo-powerpc32-linux.o -o demo-powerpc32-linux
$ bintrace ./demo-powerpc32-linux
Starting program: ./demo-powerpc32-linux
r0 = 0xb
r1 = 0xaffff4c0
msr = 0xd932
0x10000054: 38000004 li r0, 4
r0 = 0x4
0x10000058: 38600001 li r3, 1
r3 = 0x1
0x1000005c: 3c801000 lis r4, 0x1000
r4 = 0x10000000
0x10000060: 60840078 ori r4, r4, 0x78
r4 = 0x10000078
0x10000064: 38a0000d li r5, 0xd
r5 = 0xd
0x10000068: 44000002 sc
Hello world!
r0 = 0x1
r3 = 0xd
r4 = 0
r5 = 0
r6 = 0x2c
r7 = 0x1000006c
r8 = 0xd432
r9 = 0x403b9a98
r10 = 0x403b9ba9
r11 = 0x403b9cba
r12 = 0x403b9987
ctr = 0xc00cab0c
0x10000070: 38600000 li r3, 0
r3 = 0
0x10000074: 44000002 sc
Process exited normally.
Кто помнит систему команд MIPS - попробуйте найти десять отличий. 😀