我在 MIPS 中有一段我无法理解的代码。即使用“读取”linux系统调用的注册约定:
...
move a0,zero #a0 = 0
move a1,s0 #a1 = some adress in memory
li v0,4003 #v0 = 4003 = SYSCALL READ
syscall
bnez a3, label #What is in a3??
li v1,1
bne v0,v1
...
现在我明白了
char buffer;
int v0 = read(0, &buffer, 1);
????
我根本不明白 reg a3 在这种情况下的含义是什么?v0 是 read 的返回值,但是 a3 应该是参数而不是 ret 值。是错误的吗?