asm15 assembler for IchigoJam / IchigoLatte
SRC
BIN
start address
size -
疑似命令
- @文字列
- ラベルを設定する。ラベルはGOTOの飛び先などに使用可能である。
- '文字列 / REM 文字列
- コメントを入れる。コメントは他の命令がある行につけることもできるが、DATA系の行にはつけられない。
- DATA[B|W|L] データ(列)
- 4バイト単位にアライメントした後、指定したデータ(整数)を出力する。データ列はコンマで区切る。
DATA/DATABは1バイトずつ、DATAWは2バイトずつ、DATALは4バイトずつである。
- UDATA[B|W|L] データ(列)
- DATAと同様に指定したデータ(整数)を出力するが、アライメントは行わない。
- (I|D)ADDR(W|L) @文字列
- 指定したラベルのアドレスをデータとして出力する。アライメントはしない。
Iは命令用(命令セットがM0の時、LSBを1にする)、Dはデータ用。Wは2バイト、Lは4バイト。
- MODE (M0|RV32C)
- 命令セットを切り替える。デフォルトはM0である。
- IF M0 GOTO @文字列
- 命令セットがM0の時はジャンプし、RV32Cのときは素通りする命令を出力する。
副作用として、命令セットがM0のときはフラグレジスタの値が、RV32CのときはR31レジスタの値が破壊される。
(参考:これまでの(LPC1114を用いた) IchigoJam と IchigoJam R 両対応のマシン語 - Qiita)
- ORG 値
- 出力位置(アドレス)を設定する。
- ORGR 値
- 出力位置(アドレス)をstart addressとの差分で設定する。
- ALIGN 割る値[, 余り[, 埋める値]]
- 出力位置(アドレス)を進め、「割る値」で割った余りが「余り」になるように調整する。
「余り」を省略した場合は余りが0になるようにする。
「埋める値」を指定した場合、出力位置が条件を満たすまでその値(2バイト)で埋める。
- ALIGNR 割る値[, 余り[, 埋める値]]
- 出力位置の代わりに「出力位置(アドレス)とstart addressの差分」をALIGNと同様に調整する。
- SPACE 増分[, 埋める値]
- 出力位置(アドレス)を指定した「増分」バイト進める。
「埋める値」を指定した場合、出力位置が条件を満たすまでその値(2バイト)で埋める。
IchigoJam Armマシン語解説ページ
Base App: by BoxHeadRoom / tagiyasoft / fukuno.jig.jp
Src on GitHub
Original Src on GitHub@IchigoJam
License: CC0 パブリックドメイン