【发布时间】:2016-12-09 15:56:10
【问题描述】:
我想在汇编中编写一个简单的 RISCV 程序,然后对其进行测试。程序应该简单地将一个值加载到一个寄存器中并为其添加一个值:
.file "hello.c"
.text
.align 2
.globl main
.type main, @function
main:
li a0, 2
add a0, a0, 7
.size main, .-main
.ident "GCC: (GNU) 5.3.
但是,当我输入时:
riscv64-unknown-elf-gcc hello.s
spke -d pk a.out
注册 0 a0
它总是返回 0x0000000000000000。为什么?我做错了什么?
【问题讨论】:
-
main末尾没有return指令正常吗?执行不只是落入下一个功能吗? (如果幸运的话,它可能会将 a0 归零并退出该过程)。我不熟悉RISCV或者你使用的模拟器,但我猜reg 0 a0是模拟器的调试输出,前两行是shell命令?
标签: gcc assembly add riscv spike