三歩目 さぁプログラミングだ

 

   皆さんご苦労様でした さぁこれからアセンブル言語(プログラム)をはじめよう!
   オヤブンから一言・・・アセンブル言語をやる前に HSPをある程度やってプログラムになれることを
                 おすすめします(その方がわかりやすい)
 
〜プログラムについて〜
   さて 実際に H8の動きを決めるプログラムを書いてみましょう
   といっても急には無理な話なので 僕が用意したこのプログラムを H8に書きこんでみましょう


	.CPU	300HA
	.SECTION	P,CODE,LOCATE=H'FF000
	MOV.B	#H'FF,R0L
	MOV.B	R0L,@H'FFFFC8
LOOP:	MOV.B	#H'FF,R0L
	MOV.B	R0L,@H'FFFFCA
	BRA	LOOP
	.END

↑右クリックして「対象をファイルに保存」を押して保存
   これをみながらメモ帳で書いて保存するか これをコピーするか サンプルプログラムをダウンロードするか
    お好きな方法でどうぞ とりあえず手に入れてください
   で手に入れたら ファイル名は ledout.src とか そんなのにしてください
   これでプログラムは完了です
   あとは これをH8に書きこめる形式(absとかmot)にして H8のRAMに転送して実行しましょう
   そのためには アセンブル というのが必要です
   アセンブルをしてくれる アセンブラは
   ソフトを保存しよう
   でCDから保存した Asmフォルダの中にある A38h.exe です
   
   上の赤で囲んであるのが アセンブラというそふとで プログラムをH8に書きこめるファイルに変換してくれます
   そして このAsmフォルダに さっきのledout.srcを保存しておいて
   アセンブラに プログラム(ledout.src)を マウスでドラッグ&ドロップ
      (ファイルの上でマウスの左クリックを押しっぱなしにして そのままマウスを A38h.exeまで移動させて その上でクリックを離す)
   
   すると 問題さえなければ ledout.obj というファイルが新しく出てくると思います
   これで プログラムはアセンブルされました
 
   次にさらに リンカというソフトでリンクをします
     これで ledout.objを HtermでRAMに送れる ledout.absにすることができます
   ledout.objを 上の青色で囲ってある L38h.exe にドラッグ&ドロップしてください
   すると ledout.absができるはずです
     (ちなみに ledout.mot を作るためには ledout.abs を C38h.exe に送れば 作れます)
   さぁこれでプログラムを H8に送って実行することができます
   早速Htermでledout.absを転送してみてください。 きっとLEDが2つともつくと思います
   
   これでプログラムの書きこみ方はわかりましたね
   プログラムを書いて .srcで保存して アセンブルしてリンクして転送
〜アセンブルって何してるの?〜
 
   プログラムは MOV.B #FF,R0L などと書いているわけですが このままでは使えません
    プログラムとは 実は 1001010101 のように 1か0の機械語 と言うもので
    これが ROMかRAMに保存されてH8で実行されるのです
   だから プログラムは 1001010101100010110 のように 1と0で書かないといけないのですが
   ・・・・とてもじゃないけどやっとれないなぁ
   そこで MOV.B #FF,R0L などと 文字で書いて それを 
    10010101101 のように 変換すれば便利です それがアセンブルです
   
   アメリカの人は英語しか分からないので 日本語の本とかをアメリカの人に読んでもらうには
    英語に直さなきゃいけない ような感じで
   H8には10011011010と書きこまないといけないので プログラム(MOV.B とか)をH8に書きこんで実行するには
     プログラムを 100010110などに直さなきゃいけない これがアセンブルです
   アセンブラは MOV.B #FF,R0L などと書いてある プログラムを
   「ふむふむ MOV.B #FF,R0L は 10110100101で」 のようにして H8に書きこめるように変換してくれるのです
   リンクは アセンブルの仕上げだと思ってください
   
   アセンブラのおかげで 100110110 のようにH8で実行できる わかりずらいプログラムをしなくとも
   MOV.B #FF,R0L と文字で書いて 変換さえすればH8に書きこめるわけです
   なんとも便利だ〜
 
   次回は 今日やったプログラムの解説をします

まとめ〜

   ・プログラムをH8に書きこめるようにする作業は・・・
     srcファイルをアセンブルして 出てきたobjファイルを リンクしてabsファイルを作る

   ・アセンブルとは MOV.B #FF,R0Lなどのプログラムを 10100101011のような
     H8で実行できる形式に変換してくれる作業

 

戻る ホームへ コウザへ 次へ

 


更新前の文章
〜便利なツール〜
   H8のアセンブル言語では 作ったプログラムをそのままH8に書きこんでも実行してくれません
    人間には MOV.B などの命令はわかっても コンピューターはわかりません すべてが
   電気が流れているか流れてないか つまり 1か0かです でも 101101110111・・・・と
   プログラムしても 人間には読みにくいでしょ?
   だから MOV・・・・・ などと書いたプログラムを 1011001・・・・・ などという機械語に変換
    してしまえばいいのです それを アセンブラーというソフトがやってくれます
   (アセンブラーはアセンブル言語という言語でかかれたプログラムしか変換できません)
   そしてアセンブラーで機械語にすることを アセンブル といいます
   そして アセンブルしたファイルを リンクや コンバート という作業を通して
     やっとH8に書き込める motファイルができます
 
   でも面倒だよね いや すっごい面倒だ  三回も ファイルを変換するなんて・・・・・
   だから 僕の作った 「AKI-H8アセンブルエディター」を
   使うといいです これは・・・・・・まぁダウンロードすればわかる
   AKI-H8 アセンブルエディター
   ダウンロードしました? それでこれから プログラムを書いて アセンブルからコンバート
   まで一気にしてしまいましょう
 
   ソフトを使わない方へのA&L&C方法・・・
     プログラム(メモ帳で)を書いて 保存して それの拡張子をsrcにして(名前の変更で拡張子をかえる)
     A38h.exe でさっき書いたプログラムをアセンブルして
         (ドラッグ&ドロップ(マウスでファイルをクリックして
             クリックしたままA38h.exeの上に持っていきそこでクリックを放す)する)
     すると obj になる んで L38h.exeで abs に C38h.exeで motにする
   
〜意味不明でも書いてみよう〜
   ↓は コピーして貼り付けても アセンブルできません


	.CPU	300HA
	.SECTION	P,CODE,LOCATE=H'FF000
	MOV.B	#H'FF,R0L
	MOV.B	R0L,@H'FFFFC8
LOOP:	MOV.B	#H'FF,R0L
	MOV.B	R0L,@H'FFFFCA
	BRA	LOOP
	.END

↑右クリックして「対象をファイルに保存」を押して保存
 
   これを サンプルプログラムからダウンロードして
     AKI-H8アセンブルエディター(これからエディターと呼ぶ)で開いてください
   (ちなみにH8のアセンブル言語のプログラムファイルの拡張子はsrcだよ)
   で エディターの アセンブル&リンク&コンバート(今度からA&L&Cと呼ぶ)ボタンを押してください
   すると自動的にプログラム(srcファイル)がアセンブルからコンバートまでされて、
         motファイルが作られます (失敗したら どこかにミスがあるよ)
   それをHtermで 前みたいにRAMに書きこんで 実行してください
   きっとLEDが2つともつくと思います
 
〜後書き〜
   どうでした? ちんぷんかんぷんだったと思います
     今回はプログラムの解説はしませんが
   大体どんな風にプログラムを書いて どんな風に motファイルにするかわかったでしょ?
   アセンブル言語で書いたプログラム(srcファイル)それを
     アセンブル→リンク→コンバート すると motファイルになる
   (srcという拡張子をエディターに関連付けすると ダブルクリックだけで開けるので便利)
 

戻る ホームへ コウザへ 次へ