職業訓練41日目 H8マイコン入門(アセンブラ言語による実習)

アセンブラ言語の基礎

アセンブラ言語とは

CPUが理解できる言語 = マシン語(二進数)
→人間には分かりにくいので、人間にも分かりやすい記号(ニーモニック)で
 プログラムを作成する。
 ニーモニックコードの集まり = アセンブラ言語

アセンブラ制御命令

アセンブラを制御するための命令 = アセンブラ制御命令(疑似命令)
例)CPUの種類を指定する、プログラムを格納するアドレスを指定する etc.

  • .CPU

H8/3048Fをアドバンストモード、24ビットのアドレス空間で使用する場合。

.CPU 300HA [:24]    ; [:24]は省略可能
  • .SECTION

セクション名、属性、形式を指定する。
属性には、コード(CODE)、データ(DATA)、コモン(COMMON)、スタック(STACK)、
ダミー(DUMMY)がある。
形式とは、アドレス指定方法のことで、LOCATEで絶対アドレス形式、ALIGNで相対アドレス形式を指定する。

.SECTION PROG1, CODE, LOCATE=H'000000

アセンブラ制御命令を知るには、以下のマニュアルを参照(PDF注意)。
http://documentation.renesas.com/jpn/products/tool/j702038_h8s.pdf

プログラムの書き方
ラベル オペレーション オペランド

 

  • ラベル

その行が格納されているメモリ上のアドレスを示す記号。
条件分岐やサブルーチンの分岐先の名前として、任意の行に付ける。

  • オペレーション

実行命令、アセンブラ制御命令などを記述する。

オペレーションの操作対象となるデータを記述する。
例)アドレス、レジスタ etc.

  • コメント

「;(セミコロン)」から始まる行はコメント。

  • 定数

整数定数と文字列定数がある。
よく登場するのは整数定数なので、そっちだけまとめる。

進数 記号
2 B' B'0010
8 Q' Q'012
10 D' D'23
16 H' H'0D

 

開発の手順([]括弧内は使用ソフト)
  1. ソースプログラムの記述
  2. アセンブル [A38H.EXE]
  3. リンク [L38H.EXE]
  4. コンバージョン [C38H.EXE]
  5. ROMに転送 [FLASH.EXE]