gpt4 book ai didi

linux - 如何在 Linux x86 中使用 nasm 以汇编语言保存文件?

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:20 26 4
gpt4 key购买 nike

我只是想知道如何将缓冲区放入文件中。我知道我可以设置寄存器,例如:

mov eax, 4
mov ebx, (file descriptor here)
mov ecx, myBuffer
mov edx, myBufferLen
int 80h

然后使用以下命令关闭文件:

mov eax, 6
int 80h

但我不知道如何获取文件描述符。有人告诉我,每当你打开一个文件时,在调用服务调度程序之后,eax 就有文件描述符。无论我尝试什么,它都不会创建新文件或保存当前文件。

最佳答案

mov eax, 5 ; __NR_open
mov ebx, filename ; zero terminated!
mov ecx, 2 ; O_WRITE? Check me on this!
mov edx, 777q ; permissions - Check me on this, too!
int 80h
; did we succeed?
cmp eax, -4096
ja exit
mov [descriptor], eax
; and so on...
;...
xor eax, eax ; claim no error
exit:
mov ebx, eax
neg ebx
mov eax, 1 ; __NR_exit
int 80h

我不确定开放标志和权限的“神奇数字”,并且现在懒得查找它们(fs.h?)。您可能需要使用 O_CREATE 来“或”打开标志来创建新文件(?)。 “exit:”的技巧会否定(负)ERRNO(如果有),因此您可以使用“echo $?”轻松读取它。类似这样的事情...

关于linux - 如何在 Linux x86 中使用 nasm 以汇编语言保存文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com