riscv的generate jal指令获取意外代码
我在test_jal.s中有一个riscv汇编代码:
jal a0, 42
我把它编译成
riscv64-linux-gnu-gcc -c -Wl,-Ttext=0x0 -nostdlib -mno-relax -o test_jal test_jal.s
然后我生成原始的riscv二进制文件
riscv64-linux-gnu-objcopy -O binary test_jal test_jal.bin
我使用hexdump -C test_jal. bin来生成它的十六进制代码:
6F 05 00 00
然后我使用riscv 64-linux-gnu-objdump来分解它。我有
jal a0,0x0
我可以做错什么吗?
系统:WSL ubuntu 22.04 gcc verison:9.3.0
1条答案
按热度按时间zqdjd7g91#
可能是汇编程序把42转换成0,因为基本上没有地方可以跳转。尝试更长的函数,如:
这是针对Rars Emulator完成的示例