我正在编写RISCV程序集,我需要执行一些系统。基于这个站点上的其他答案,我知道我需要将syscall代码加载到a7中并启动ecall。
我怎么知道要使用什么代码?
编辑:我试图使用写,读,关闭,wait4,叉子。
我发现了两种不同的syscall代码来源:
并直接在使用RISCV工具链运行make linux后生成的文件中:sysroot/usr/include/asm-泛型/unistd.h
我该用哪一种?(叉子在第一个,而不是第二个)
发布于 2022-09-01 09:48:02
基于这些注释,我认为在组装和链接到必要的C库之前,我可以简单地在汇编代码中使用call <syscall>,而不是直接设置a7和使用ecall。如果有用的话会更新的。
https://stackoverflow.com/questions/73557800
复制相似问题