linux(ubuntu 64bit)でアセンブリプログラミングをしています。
標準入力をfread関数で読みキーを入力するとそれを標準出力するプログラムをつくろうと思っているのですが、標準入力をfread関数で読み込もうとすると、セグメンテーションエラーが起こります。どうすればいいでしょうか?回答よろしくお願いします。
一応考えたのですが、標準入力はeofがないのでタイムアウトで終わったのかと考えました。ですが、freadは読み込むデータ量を指定しているのでeofがエラーの原因ではないような気がします。
原因がわからないので質問しました。
回答よろしくお願いします。
プログラムはこれです。gcc 64bitです。
gcc
1.file "main.s" 2 3.bss 4.comm buffer,64 5 6.data 7codes: .string "%s\n" 8 9.text 10.globl main 11main: 12pushq %rbp 13movq %rsp, %rbp 14subq $32, %rsp 15 16main1: 17movq $32, %rdx 18movq $buffer, %rsi 19movq $0, %rdi /*標準出力のファイル識別子*/ 20call fread 21movq $buffer, %rsi 22movq $codes, %rdi 23call printf 24movq stdout(%rip), %rax 25movq %rax, %rdi 26call fflush 27jmp main1 28~
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/18 00:07