大和田/pasm
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[大和田/PICO16o]]
*pasm [#e4570613]
拡張版PICOアセンブラの説明。
----
#contents
**コマンド形式 [#p8cd8fc7]
pasm.pl [-v][-m] in.s [-o ofile]
-v: verilogHDL $memreadで読める形式
-m: .mif形式(default)
-o: 出力ファイル名を陽に指定する場合.
指定が無いときは,in.mem (-vの場合) , in.mif(-mの場合).~
/home/course/comporg/binへパスを通しておくこと.
**.mif形式に関して [#w3f3497f]
FPGAでの動作検証の時に使用する~
~
[注意]~
Quartus IIを使用して.hex形式に変換して使用すること.
**.mem形式に関して [#u17a952c]
シミュレーションでの動作検証の時に使用する.
**未実装の命令 [#n302b15d]
LB(load byte), SB(store byte)命令は定義されていない.アセンブラで指定されたときは,エラー
**PCに関して [#ib0e88fd]
メモリアクセスは2byteを1アドレスとするため,PCは1ずつ変化する.
**ラベルに関して [#mb281cf7]
immediate命令(addi, ldli, ldhiなど)でラベルが指定されたときは, 対応する番地そのものを,branch, jmp命令でラベルが指定されたときは,ラベル番地-(pc+1)を指定されたものとして扱う.
**データ初期値の指定子 [#n02560da]
.byte, .half, .word, .ascii, .asciiz
**.byte, .half, .wordに関して [#k650070f]
-複数のデータを指定可能
例) .half 0x0000, 0x0001
**.ascii, .asciizに関して [#s912973b]
-単一のデータのみ指定可能
例) ○ .ascii “Hello” × .ascii “Hello”, “World”
-カタカナ文字をサポート.漢字や特殊記号に関してはサポートしない.
例) ○ .asciiz “アセンブラ” × .asciiz “構築論”
**エラーに関して [#z60ecb21]
入力ファイルに誤りがあります.修正してください.
**警告に関して [#d88b4532]
メッセージで示されている行で誤動作を起こす可能性が高いので,入力ファイルを確認および修正すること.
**サンプル [#g5d0fbbe]
&ref(sample.s); : 32番地(0x20)から続く8個のデータの中で,最大値を見つける.
**.mif -> .hex変換方法 [#c6130df8]
+QuartusIIを起動する
+mifファイルを開く
--メニューの"File -> Open"から対象のファイルを選択する.
+hexファイルとして保存する
--メニューの"File -> Save as"からhex形式を選択する.
終了行:
[[大和田/PICO16o]]
*pasm [#e4570613]
拡張版PICOアセンブラの説明。
----
#contents
**コマンド形式 [#p8cd8fc7]
pasm.pl [-v][-m] in.s [-o ofile]
-v: verilogHDL $memreadで読める形式
-m: .mif形式(default)
-o: 出力ファイル名を陽に指定する場合.
指定が無いときは,in.mem (-vの場合) , in.mif(-mの場合).~
/home/course/comporg/binへパスを通しておくこと.
**.mif形式に関して [#w3f3497f]
FPGAでの動作検証の時に使用する~
~
[注意]~
Quartus IIを使用して.hex形式に変換して使用すること.
**.mem形式に関して [#u17a952c]
シミュレーションでの動作検証の時に使用する.
**未実装の命令 [#n302b15d]
LB(load byte), SB(store byte)命令は定義されていない.アセンブラで指定されたときは,エラー
**PCに関して [#ib0e88fd]
メモリアクセスは2byteを1アドレスとするため,PCは1ずつ変化する.
**ラベルに関して [#mb281cf7]
immediate命令(addi, ldli, ldhiなど)でラベルが指定されたときは, 対応する番地そのものを,branch, jmp命令でラベルが指定されたときは,ラベル番地-(pc+1)を指定されたものとして扱う.
**データ初期値の指定子 [#n02560da]
.byte, .half, .word, .ascii, .asciiz
**.byte, .half, .wordに関して [#k650070f]
-複数のデータを指定可能
例) .half 0x0000, 0x0001
**.ascii, .asciizに関して [#s912973b]
-単一のデータのみ指定可能
例) ○ .ascii “Hello” × .ascii “Hello”, “World”
-カタカナ文字をサポート.漢字や特殊記号に関してはサポートしない.
例) ○ .asciiz “アセンブラ” × .asciiz “構築論”
**エラーに関して [#z60ecb21]
入力ファイルに誤りがあります.修正してください.
**警告に関して [#d88b4532]
メッセージで示されている行で誤動作を起こす可能性が高いので,入力ファイルを確認および修正すること.
**サンプル [#g5d0fbbe]
&ref(sample.s); : 32番地(0x20)から続く8個のデータの中で,最大値を見つける.
**.mif -> .hex変換方法 [#c6130df8]
+QuartusIIを起動する
+mifファイルを開く
--メニューの"File -> Open"から対象のファイルを選択する.
+hexファイルとして保存する
--メニューの"File -> Save as"からhex形式を選択する.
ページ名: