以下代码用于在文本文件中编写foobar。命名为tests.txt位于H.但它没有这样的事情,它不会给我一个错误,它只是让文件处于我发现它的相同状态。在解码时,看起来%eax在调用_fopen之后是0,这看起来像我喜欢
blablaaa: .asciz "foobar /n"
filewritemode: .asciz "a"
filelocation: .asciz "/h/tests.txt"
_main:
push $filewritemode
push $filelocation
call _fopen
push $blabla
push %eax
call _fprintf
addl $16,%esp
push $0
call _exit # exit the program
我使用gcc来编译这个东西,以防它重要并且之前能够成功调用printf。 在尝试播放声音时,我发现将声音的位置更改为test.wav但是这不起作用,这里有什么东西吗?顺便说一句是的,我试过/H/test.txt H:/test.txt test.txt我错过了什么? 或者这可能是一个许可问题?
答案 0 :(得分:1)
您正在将参数传递给fprintf
。来吧,多注意一下,你已经犯了这个错误!
但这不应影响fopen
的返回值。那部分对我有用。请注意,某些环境需要堆栈指针的16字节对齐。
顺便说一下,/n
不是换行符,如果你想要的话。