Assembly x86程序集系统取消与ENOSYS的退出链接

Assembly x86程序集系统取消与ENOSYS的退出链接,assembly,x86,system-calls,Assembly,X86,System Calls,我对上述代码有问题,因为取消了与-38(ENOSYS)系统调用退出的链接 sys\u execve(wget)(子项)工作正常(文件已下载),但取消链接不正常。 我不明白为什么会出现ENOSYS错误…返回子进程的pid(或-1出错)。由于在下一次系统调用之前没有清除AH寄存器,因此该值的一部分可能仍然存在,并且最终调用的是任意系统调用,而不是0x0a 尝试设置EAX而不是AL: ;fork xor eax,eax mov al,0x2 int 0x80 xor ebx,ebx cmp eax,e

我对上述代码有问题,因为
取消了与
-38(ENOSYS)
系统调用退出的链接

sys\u execve(wget)
(子项)工作正常(文件已下载),但取消链接不正常。
我不明白为什么会出现ENOSYS错误…

返回子进程的pid(或
-1
出错)。由于在下一次系统调用之前没有清除
AH
寄存器,因此该值的一部分可能仍然存在,并且最终调用的是任意系统调用,而不是
0x0a

尝试设置
EAX
而不是
AL

;fork
xor eax,eax
mov al,0x2
int 0x80
xor ebx,ebx
cmp eax,ebx
jz wget

;wait(NULL)
xor eax,eax
mov al,0x7
int 0x80

;rm /tmp/pubkey
cdq
push edx
push 0x79656b62
push 0x75702f70
push 0x6d742f2f  
mov ebx,esp
mov al,0xa
int 0x80

非常感谢:你解决了我的问题!(我使用了异或eax,eax,因为我不想要空字节;)
mov ebx, esp
mov eax, 0x0a
int 0x80