Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly riscv objdump如何设置打印x0-x31寄存器名而不是abi名称_Assembly_Disassembly_Cpu Registers_Riscv_Objdump - Fatal编程技术网

Assembly riscv objdump如何设置打印x0-x31寄存器名而不是abi名称

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 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 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