-o
これは、g ++や(outfile)フラグなど、コンパイラから直接インポートされたファイルに関するものです。
バイナリならば、ただ0と1の束でなければなりませんか?
キャプチャすると理解できない出力が出ますが、完全な単語も出てきます。
ファイルにまとめると、すぐに答えを得ることができます。計算が必要ないようです。バイナリに実際にそのような情報を含むヘッダーはありますか?
私はバイナリ実行ファイルをコンパイルされたばかりのプログラム、つまりCPUが即座に明確に理解できる機械命令の形で考えています。それでは、命令セットは単なるビットパターンではないでしょうか?しかし、バイナリには何がありますか?このビットをどのように表示しますか?
また、どういうわけかプロセッサマニュアルを入手したら、一度に1つのマシン命令でバイナリを手書きできますか?非常に非効率的だろうが、非常に「Hello World!」も動作させると面白いです。デモ。
ベストアンサー1
スーパーユーザーの質問:テキストエディタでバイナリファイルを開くときにバイナリコードが表示されないのはなぜですか?最初のポイントをとてもよく解決しました。
バイナリとテキストデータは分離されておらず、単なるデータです。それはそれらを2つのうちの1つにする解釈に依存します。テキストエディタでバイナリデータ(画像ファイルなど)を開くと、選択した解釈(テキスト)に従わないため、多くのデータが意味をなさなくなります。
ファイルは0と1として保存されます(たとえば、メモリの電圧/電圧なし、ハードドライブの磁化/磁化なし)。 0/1 シーケンスは人にとってあまり役に立たないため、ファイルを読み取ると 0 と 1 を見ることはできません。cat
文字がより意味があり、16進ダンプがほとんどの目的に適しています(hexdump
ファイルを試してください)。
実行可能ファイルタイトルありビルドされたプログラムのアーキテクチャ、ファイルのどの部分がコードとデータであるかなどのパラメータを説明します。これはfile
、バイナリファイルの特性を識別するために使用されます。
最後に:はい。 CPU opcode を直接使用して、アセンブリ言語でプログラムを作成できます。見てUNIXアセンブリプログラミングの紹介そしてインテルx86ドキュメント出発点へ。