Просто попробуйте ....
so.s
.globl _start
_start:
add r0,r1,r2
add r1,r2,r3
ldr r3,=skip
bx r3
.word 0x12345678
.hword 0xaaaa
.thumb
.thumb_func
skip:
add r0,r1,r2
add r1,r2,r3
и попробуйте
arm-linux-gnueabi-as so.s -o so.o
arm-linux-gnueabi-objdump -D so.o
so.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <_start>:
0: e0810002 add r0, r1, r2
4: e0821003 add r1, r2, r3
8: e59f300c ldr r3, [pc, #12] ; 1c <skip+0x6>
c: e12fff13 bx r3
10: 12345678 eorsne r5, r4, #120, 12 ; 0x7800000
14: 1888aaaa stmne r8, {r1, r3, r5, r7, r9, fp, sp, pc}
00000016 <skip>:
16: 1888 adds r0, r1, r2
18: 18d1 adds r1, r2, r3
1a: 00000000 andeq r0, r0, r0
...
Disassembly of section .ARM.attributes:
00000000 <.ARM.attributes>:
0: 00001541 andeq r1, r0, r1, asr #10
4: 61656100 cmnvs r5, r0, lsl #2
8: 01006962 tsteq r0, r2, ror #18
c: 0000000b andeq r0, r0, fp
10: 01080206 tsteq r8, r6, lsl #4
14: Address 0x0000000000000014 is out of bounds.
да objdump разбирает все ... включая данные и другие разделы, ну да ладно, кого это волнует ... обратите внимание, как он получил большой палец против руки ...
также может быть связанным двоичным файлом
arm- linux -gnueabi-ld - Ttext = 0x8000 so.o -o so.elf arm- linux -gnueabi-objdump -D so.elf
so.elf: file format elf32-littlearm
Disassembly of section .text:
00008000 <_start>:
8000: e0810002 add r0, r1, r2
8004: e0821003 add r1, r2, r3
8008: e59f300c ldr r3, [pc, #12] ; 801c <skip+0x6>
800c: e12fff13 bx r3
8010: 12345678 eorsne r5, r4, #120, 12 ; 0x7800000
8014: 1888aaaa stmne r8, {r1, r3, r5, r7, r9, fp, sp, pc}
00008016 <skip>:
8016: 1888 adds r0, r1, r2
8018: 18d1 adds r1, r2, r3
801a: 80170000 andshi r0, r7, r0
...
Да, это вообще будет беспорядок:
arm-linux-gnueabi-objcopy -O binary so.elf so.bin
arm-linux-gnueabi-objdump -m ARM -b binary -D so.bin
so.bin: file format binary
Disassembly of section .data:
00000000 <.data>:
0: e0810002 add r0, r1, r2
4: e0821003 add r1, r2, r3
8: e59f300c ldr r3, [pc, #12] ; 0x1c
c: e12fff13 bx r3
10: 12345678 eorsne r5, r4, #120, 12 ; 0x7800000
14: 1888aaaa stmne r8, {r1, r3, r5, r7, r9, fp, sp, pc}
18: 000018d1 ldrdeq r1, [r0], -r1 ; <UNPREDICTABLE>
1c: 00008017 andeq r8, r0, r7, lsl r0
он получил правильные руки, но не большие, и не будет. сделай это большим пальцем только он получит большой палец, а не руку и никогда не будет ...