昨今は
また,
そんなご時勢におけるアセンブラは,
好事家や目利きにとっては価値があっても一般にはわかりづらいところとか,
それでは現代においてアセンブラの修得は意味がないのでしょうか?
連載の初回として,
本記事が,
アセンブラの位置づけ
C言語におけるコンパイル処理の過程から,
一般的なコンパイルの手順では,cc
というコマンド
- 1.プリプロセッサ
(Pre-processor) - C言語のプログラムを入力に,
マクロの展開やヘッダファイルの読み込みなどを行います (この段階で処理を止める場合のコンパイラオプションは-E)。 - 2.狭義のコンパイラ
- プリプロセッサの結果を入力に,
稼動対象環境のアーキテクチャ向けのアセンブラプログラムを生成します (この段階で処理を止める場合のコンパイラオプションは-S)。 - 3.アセンブラ
(Assembler) - アセンブラプログラムを入力に,
オブジェクトファイルを生成します (この段階で処理を止める場合のコンパイラオプションは-c)。 - 4.リンカ
(Linker) - オブジェクトファイルを入力に,
稼動対象環境における実行可能形式のファイルを生成します。
アセンブラプログラムは,
なお,
「アセンブリ言語で書かれたプログラム」
アセンブラを修得すべき人
冒頭では
コンパイラを開発する人
先述したように,
対象アーキテクチャは,
オペレーティングシステム層で動作するプログラムを開発する人
オペレーティングシステム実装の大部分はC言語で書かれていますが,
特定のCPU機能を使用するために,
CPU依存性のない部分
- ※1)
- 通常のプログラムで言うところのコアダンプに相当
ソフトウェアに対する理解を深めたい人
たとえそれがどんなに
つまり,
筆者は以前,
アセンブラのレベルでソフトウェアの仕組みを考える視点を身につけることで,
アセンブラ修得に向かない人
筆者の個人的な見解ですが,
プログラミングが初めての人
1980年あたりよりも前であれば,
初心者にとっては,
なお,
学習が暗記ベースな人
新しい分野について学習する際に,
開発上の必要性があるなら兎も角,
勿論,
しかし同じ丸暗記するなら,