J'ai un fichier nommé customer.txt
.Comment prendre une entrée de chaîne à partir d'un fichier dans la langue d'assemblage?
customer.txt
amin jamal
je besoin d'un exemple de code qui prend entrée de chaîne (amin
) à partir customer.txt
fichier et l'imprimer en utilisant c printf()
fonction.
Mon code est
section .bss
s: resb 100
section .data
fmt: db "%s",10,0
name: db "customer.txt",0
mode: db "r+",0
fp: dq 0
section .text
global main
extern fopen
extern fgets
extern printf
main:
push rbp
mov rdi , name;
mov rsi , mode
call fopen
mov [fp] , rax
mov rdi , s
mov rsi , 7
mov rdx , [fp]
call fgets
mov rdi , fmt
mov rsi , s
call printf
pop rbp
ret
Cela ne peut pas prendre chaîne complète. J'utilise NASM assembler. Mon système d'exploitation est 64 bits Linux. J'utilise la commande nasm pour assembler, compiler et exécuter.
nasm -f elf64 file.asm
gcc file.o
./a.out
résultats -
amin j
Que signifie _ "ne peut pas prendre la chaîne complète" _ signifie exactement? Quels sont quelques exemples d'entrées et de sorties? – Michael
Voulez-vous dire qu'il faut au plus sept caractères (cfr 'mov rsi, 7')? –
@Michael Je modifie ma question. – alhelal