文字列が数字かどうかをチェックする基本的な asm プログラムがあります。コマンドライン引数から読み取るコードを追加していたので、セグフォルトが発生し続けます。
私が読んだものが正しければ、これはプログラムに渡された引数の量を取得し、0(%ebp) に格納する必要があります。私は何を間違っていますか?
コード全体は、 http ://pastebin.com/kGV2Mxx4 にあります 。問題は、_start の最初の 3 ~ 5 行です。
lscpu の出力を見ると、i868 CPU があります。ただし、32ビットと64ビットで動作できると書かれています。32 ビット Linux (Arch Linux x86) を実行しています
問題を修正しました。1 つはプログラム名をバイパスするため、もう 1 つは最初の引数を取得するためです。更新されたコードは次の場所にあります: http://pastebin.com/xewyeHYf
誰かが私に次のことができなかった理由を教えてください:
pushl 8(%ebp)
また
movl 8(%ebp), %eax