使用arm-none-eabi-objdump命令时添加选项--no-show-raw-insn,解析出的反汇编文件中将不再包含原始指令的行。
示例代码:
arm-none-eabi-gcc -g -O0 test.c -o test.elf
arm-none-eabi-objdump -S test.elf > test.asm
cat test.asm
在反汇编文件中会出现类似以下的冗余行:
40404c: eafffffe b 404050
404050: b480 push {r7}
404052: b085 sub sp, #20
404054: af00 add r7, sp, #0
这是由于arm-none-eabi-objdump默认会显示原始指令的行,包括注释和空行等信息。如果不需要原始指令的行,可以使用--no-show-raw-insn选项。
以下是修改后的命令:
arm-none-eabi-objdump -S --no-show-raw-insn test.elf > test.asm
再次查看反汇编文件,将不再包含原始指令的行,只保留汇编指令的行:
40404c: eafffffe b 404050
404050: b480 push {r7}
404052: b085 sub sp, #20
404054: af00 add r7, sp, #0