今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

アセンブラ入門 via 橋本の正徳日記

いまどきアセンブラ使う人なんてどのくらいいるんだろう?組込系だって Java が使えるこの時代にアセンブラ使う必要があるのか?
って、たぶん、組込系で Java を使うためにはきっとアセンブラが必要だ。(そういう仕事にかかわったことがないので本当はどうだか分からんが)
知らない人も多いだろうからちょっと補足説明。(間違いあるかも。指摘歓迎。)
なぜって、例えば組込系だと日本発のITRONや、Javaと共に火星に行ったVxWorks、最近普及し始めたLinuxなどが多く使われている(OSなしで動作する組込アプリケーションも多い)。JBlend などの JavaVM は ITRON などの組込系OS上で動作する。その組込系OSは、最初からいろんなデバイスを扱えるようにできてるわけじゃない。特に ITRON は単なる仕様でしかない。いろんな石を動かすためのコード(デバイスドライバ)を書いて、各組込系の OS に組み込んで、やっとこさその上で JBlend などの JavaVM が動くようになる。
JavaVM のように高度に抽象化された環境の上で動作するソフトウェアを作るときはアセンブラなんて無用だが*1、ハードウェアに直接アクセスするソフトウェアにとってはアセンブラは不可欠だ。
という前振りはもういいとして。。。

ここで、アセンブラの特徴(?)を紹介します。

  • コンピュータの仕組みを学ぶにはアセンブラが1番
  • 高級言語は裏で何しているかわからん!!
  • 高級言語はバカな処理をすることがある!!
  • CPUが変わると命令も変わるが、基本は一緒
  • パズル好きな人向け
  • 「この世で信用できるのは自分だけ!!」という人向け

2番目と3番目のはウケた。(^^)
それから、最後のもアセンブラの特徴をよく表してるかも。ちなみにワタシは自分を信用できないから、アセンブラ(でソフトウェアを書く)には向いてない。

*1:バイトコードは JavaVM にとってのアセンブラに対応するともいえるが