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 パブリックドメイン