Assembly riscv objdump如何设置打印x0-x31寄存器名而不是abi名称
我正在尝试使用riscv64 unknown elf objdump反汇编risc-v二进制文件,我希望获得硬件中看到的寄存器名(如x0-x31),而不是abi中看到的寄存器名(sp、s0、a…) objdump手册似乎没有RISC-V这样的选项。事实上,该手册似乎没有任何与RISC-V相关的信息。 ARM有-M reg名称raw,有人知道这样的标志是否可用吗Assembly riscv objdump如何设置打印x0-x31寄存器名而不是abi名称,assembly,disassembly,cpu-registers,riscv,objdump,Assembly,Disassembly,Cpu Registers,Riscv,Objdump,我正在尝试使用riscv64 unknown elf objdump反汇编risc-v二进制文件,我希望获得硬件中看到的寄存器名(如x0-x31),而不是abi中看到的寄存器名(sp、s0、a…) objdump手册似乎没有RISC-V这样的选项。事实上,该手册似乎没有任何与RISC-V相关的信息。 ARM有-M reg名称raw,有人知道这样的标志是否可用吗 riscv64未知elf objdump-M“无别名”-M“gpr名称原始”-d hello ->返回值 0:riscv64未知elf
riscv64未知elf objdump-M“无别名”-M“gpr名称原始”-d hello
->返回值0:riscv64未知elf objdump:无法识别的反汇编程序选项:gpr名称原始 gpr名称raw或reg NAME=ARCH都不是可识别的选项 我想要这样的东西:
addi x1,x1,-32
sw x2,28(x3)
addi x5,x5,32
而不是这个
addi sp,sp,-32
sw s0,28(sp)
addi s0,sp,32
支持使用以下RISC-V特定的反汇编程序选项
使用-M开关(多个选项应以逗号分隔):
(GNU objdump 2.33.1——帮助
)
示例调用:
$ riscv64-unknown-elf-objdump -d num.o -M numeric
num.o: file format elf32-littleriscv
Disassembly of section .text:
00000000 <.text>:
0: fe010113 addi x2,x2,-32
4: 00812e23 sw x8,28(x2)
8: 02010413 addi x8,x2,32
$riscv64未知elf objdump-d num.o-M numeric
num.o:文件格式elf32 littleriscv
第节的分解。正文:
00000000 :
0:fe010113 addi x2,x2,-32
4:00812e23西南x8,28(x2)
8:02010413 addi x8,x2,32
根据binutils的源代码,Mnumeric应该可以工作。另外,objdump--help
应该打印“数字打印数字寄存器名称,而不是ABI名称”。@jester谢谢!这正是我需要的
numeric Print numeric register names, rather than ABI names.
no-aliases Disassemble only into canonical instructions, rather
than into pseudoinstructions.
$ riscv64-unknown-elf-objdump -d num.o -M numeric
num.o: file format elf32-littleriscv
Disassembly of section .text:
00000000 <.text>:
0: fe010113 addi x2,x2,-32
4: 00812e23 sw x8,28(x2)
8: 02010413 addi x8,x2,32