汇编语言错误

时间:2015-12-04 15:31:57

标签: assembly

;此程序仅打印文件中的第一个单词。我不知道如何找到文件的结尾或如何读取整个字符串,即使它有空格。

.data
open_mode DB "r",0
file_name1 DB "prb4.txt",0
linie DB 0
format DB "%s ",0
.code
start:
            push offset open_mode
            push offset file_name1
            call fopen
            add esp,8
            mov ecx,eax
            et_read:    
            push offset linie
            push offset format
            push eax
            call fscanf
            add esp,12
            push offset linie
            push offset format
            call printf
            add esp,4
            loop et_read


push 0
call exit
end start

1 个答案:

答案 0 :(得分:0)

一些快速观察

  • 您需要为正在阅读的数据分配空间。目前linie只有一个字节。您可以执行以下操作

    linie DB 80 dup(?);分配一个80字节的缓冲区

  • 使用fgets一次读取一行。确保您的linie缓冲区足够大,以便

  • 您可以检查fgets的返回值以确定eof
  • 请务必在完成后关闭文件。