我应该写一个小型程序集" program"只需使用循环读取文件并将内容输出到STDOUT。
现在,我制作了一个可以读取文件的程序,不幸的是只输出了第一行。我也无法弄清楚如何使用循环。
这是我第一次使用装配工作而且我这样做是因为我必须这样做,而不是因为我想要。
这是我的代码:
section .text
global _start ;must be declared for using gcc
_start: ;tell linker entry point
;open the file for reading
mov eax, 5
mov ebx, file_name
mov ecx, 0 ;for read only access
mov edx, 0777 ;read, write and execute by all
int 0x80
mov [fd_in], eax
;read from file
mov eax, 3
mov ebx, [fd_in]
mov ecx, info
mov edx, 26
int 0x80
; close the file
mov eax, 6
mov ebx, [fd_in]
; print the info
mov eax, 4
mov ebx, 1
mov ecx, info
mov edx, 26
int 0x80
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
file_name db './passwd'
section .bss
fd_out resb 1
fd_in resb 1
info resb 26