Можно ли дизассемблировать при помощи gcc объектный файл в формат, в текстовом формате, пригодном для последующего ассемблирования.
Необходимо пере-собрать файл из .a библиотеки.
Дизассемблирование / корректировка / ассемблирование
objdump выдает дизассемблерный листинг в формате, который долго править вручную: :(
cpu.o:
Диассемблирование раздела .text:
00000000 <cpuContextInit>:
0: 00a62821 addu a1,a1,a2
4: fc850040 sd a1,64(a0)
8: fc850048 sd a1,72(a0)
c: 3c080000 lui t0,0x0
10: 25080000 addiu t0,t0,0
14: 8f890000 lw t1,0(gp)
18: fc880050 sd t0,80(a0)
1c: 03e00008 jr ra
20: fc890058 sd t1,88(a0)
00000024 <cpuContextSwitch>:
24: 1080000e beqz a0,60 <cpuContextSwitch+0x3c>
28: 00000000 nop
2c: fc9f0050 sd ra,80(a0)
30: fc9d0040 sd sp,64(a0)
34: fc9e0048 sd s8,72(a0)
38: fc900000 sd s0,0(a0)
3c: fc910008 sd s1,8(a0)
40: fc920010 sd s2,16(a0)
44: fc930018 sd s3,24(a0)
48: fc940020 sd s4,32(a0)
4c: fc950028 sd s5,40(a0)
50: fc960030 sd s6,48(a0)
54: 40086000 mfc0 t0,$12
58: fc970038 sd s7,56(a0)
5c: fc880058 sd t0,88(a0)
60: 10a00014 beqz a1,b4 <cpuContextSwitch+0x90>
64: 00000000 nop
68: 40096000 mfc0 t1,$12
6c: dcb00000 ld s0,0(a1)
70: dcb10008 ld s1,8(a1)
74: 3129ff00 andi t1,t1,0xff00
78: dcb20010 ld s2,16(a1)
7c: dcb30018 ld s3,24(a1)
80: dca80058 ld t0,88(a1)
84: dcb40020 ld s4,32(a1)
88: dcb50028 ld s5,40(a1)
8c: 3c01ffff lui at,0xffff
90: 342100ff ori at,at,0xff
94: 01014024 and t0,t0,at
98: dcb60030 ld s6,48(a1)
9c: dcb70038 ld s7,56(a1)
a0: dcbe0048 ld s8,72(a1)
a4: dcbd0040 ld sp,64(a1)
a8: dcbf0050 ld ra,80(a1)
ac: 01094025 or t0,t0,t1
b0: 40886000 mtc0 t0,$12
b4: 03e00008 jr ra
b8: 00000000 nop
...................................