我在NASM(适用于Linux)中有一段代码,应该打开一个现有文件,读取它并在屏幕上打印内容,但是不起作用,有人可以告诉我我在做什么错吗?(hello.txt
是名字文件的)
section .data
file db "./hello.txt", 0
len equ 1024
section .bss
buffer: resb 1024
section .text
global _start
_start:
mov ebx, [file] ; name of the file
mov eax, 5
mov ecx, 0
int 80h
mov eax, 3
mov ebx, eax
mov ecx, buffer
mov edx, len
int 80h
mov eax, 4
mov ebx, 1
mov ecx, buffer
mov edx, len
int 80h
mov eax, 6
int 80h
mov eax, 1
mov ebx, 0
int 80h
最佳答案
mov ebx, [file] ; name of the file
mov eax, 5
mov ecx, 0
int 80h
是错的。松开
file
周围的方括号。您正在传递文件名,而不是指向文件名的指针。mov ebx, file ; const char *filename
mov eax, 5
mov ecx, 0
int 80h
关于linux - NASM,读取文件并打印内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26963871/