PIC用プログラムをアセンブル
PIC用のアセンブラ(mpasmx.exe)を用いてアセンブルしてみます。mpasmx.exeは(2018年8月現在)MPLAB X IDE ver4.20(無償版)を
ダウンロード&インストールすることで入手できます。インターネットで検索するとすぐに出てくると思います。
なお、インクルードファイル(.inc)も必要です。MPLABをインストールすればmpasmx.exeと同じフォルダに在るはずです。
※PICは初心者向けのCPUではないと思いますので初めてアセンブラに挑戦するのであれば、特に理由がない限りは別のCPU(H8、Z80等)をお勧め致します。
PICは命令数は少ないのですがレジスタが少なくて演算の仕方、分岐の仕方などが分かりにくいと思います。
(・・・というより、RISC CPUなので人に分かり易くは作られていません)。
また、レジスタ・ファイル(RAM)にアクセスする際もバンク切り替え等の面倒くさい手続きが必要になります。
なので、どうしてもPICじゃないと...ということでなければ別のCPUから始めた方が良いと思います。
アセンブルするための準備
TEditorMXのコンパイル設定
コンパイル(アセンブル)を実行してみましょう
アセンブルするための準備
アセンブルするための準備として、環境設定用バッチファイル(env.bat)とソースプログラム(main.asm)およびプロジェクトファイル(project.tep)を用意します。
下記のファイル名を右クリックしますと対象ファイルを保存できると思いますので、任意のプロジェクトフォルダに保存してご利用下さい。
env.bat
※下記の内容はMPLABをデフォルトフォルダ(OSはWindows10Pro 64bit)にインストールしたときで、
プロジェクトフォルダ(ソースファイルなどを格納するフォルダ)をC:\PIC\testとしたときの様子です。
ご利用の環境に合わせて適切に書き換えてご利用下さい。
set Path="C:\Program Files (x86)\Microchip\MPLABX\v4.20\mpasmx";%Path% c: cd "C:\PIC\test"
main.asm
※下記のプログラムに意味はありません。とりあえずテストするためだけの内容です。
list p=16f877a #include p16f877a.inc REGA equ 0x21 org 0x0 goto error main movlw 0x1 addlw 0x2 movwf REGA STOP_LOOP goto STOP_LOOP end
project.tep
※プロジェクトファイルです。
プロジェクトファイルは先頭に文字コードのオプションスイッチが付き、続けてファイル名が記述されただけのファイルです。
/S .\env.bat /S .\main.asm
TEditorMXのコンパイル設定
TEditorMXのコンパイル(アセンブル)設定をします。
エクスプローラーからproject.tepをダブルクリックして情報ウィンドウ(InfoWinMX.exe)を起動し、
ツリービューのmain.asmアイテムをダブルクリックしてファイルを開いて下さい。
TEditorMXでmain.asmを開いたらコンパイル設定を行います。
【コンパイル】メニューの【設定】を選択してコンパイル設定ダイアログを開きます。
開きましたら以下の様に設定して下さい。
<< 解説 >>
-
(1)環境設定バッチファイル
-
mpasmx.exeへパスを通してカレントフォルダを任意のプロジェクトフォルダに変更するバッチファイルを指定して下さい
(アセンブルするための準備で用意したenv.batを指定して下さい)。
-
(2)実行ファイル or 実行バッチファイル
-
実行するコマンド(mpasmx.exe)とそのオプションを指定します。
実行コマンド → mpasmx
実行オプション → main.asm /p16F877A /q
(3)結果 -
mpasmx.exeは結果を標準出力ではなく、.errファイルへ出力します。
そのためここでは、
main.err
と入力し、コンパイル(アセンブル)終了後に情報ウィンドウのコンパイル結果タブに結果を読み込ませるようにします。
コンパイル(アセンブル)を実行してみましょう
エディタのコンパイル実行ボタンを押して下さい。
上手く設定できていればアセンブラ(mpasmx.exe)が起動し、アセンブルが実行され、
結果が情報ウィンドウのコンパイル結果タブに表示されるはずです。
(上手くいかないときはenv.batの内容とコンパイル設定ダイアログの内容を再確認して下さい)。
ちなみに、上手くいけば下図「エラー有り」のようにアセンブルエラーが表示されるはずです。
実はmain.asmには誤りがありまして、そのままではアセンブルが通りません。
エラーとなっている行(8行目)を削除(行頭にセミコロン ; を付けてコメントにしてもOK)した後、
再度コンパイルを実行してみて下さい。
今度はエラー表示が無く(下図「エラー無し」)、正常にアセンブルされるはずです。
●「エラー有り」のコンパイル結果
●「エラー無し」のコンパイル結果