0
私はcustomer.txt
という名前のファイルを持っています。アセンブリ言語でファイルから文字列を入力する方法?
amin jamal
Customer.txtの
Iはcustomer.txt
ファイル から文字列の入力(amin
)をとり、C printf()
機能を使用してそれを印刷するサンプルコードを必要とします。
私のコードは、これは完全な文字列を取ることができない
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
です。
私はNASMアセンブラを使用しています。私のOSは64ビットLinuxです。
アセンブル、コンパイル、実行にはnasmコマンドを使用します。
nasm -f elf64 file.asm
gcc file.o
./a.out
結果 -
amin j
_ "完全な文字列を取ることができません"とはどういう意味ですか?入力と出力の例は何ですか? – Michael
最大7文字(cfr 'mov rsi、7')の文字が必要ですか? –
@Michael私は私の質問を編集します。 – alhelal