マイコン/デジタル回路
電子工作関連の記事です。アンプ回路はこちら。
電子工作関連の記事です。アンプ回路はこちら。
PICを初めてさわってみたんですが、アセンブラが癖ありますね。x86(やZ80)に慣れた人間には少々使いにくいのでマクロ集を作ってみました。あまり大がかりにならず、適当な規模にしてあります。
利用は用途を問わず自由にどうぞ。
マクロ | W保存 | 機能 |
---|---|---|
bank0 | ○ | bank0に切り替え |
bank1 | ○ | bank1に切り替え |
bank2 | ○ | bank2に切り替え |
bank3 | ○ | bank3に切り替え |
mov reg,reg2 | × | reg ← reg2 |
movi reg,imm | × | reg ← imm |
and reg,reg2 | × | reg ← reg and reg2 |
andi reg,imm | × | reg ← reg and imm |
test reg,reg2 | × | w ← reg and reg2 |
testi reg,imm | × | w ← reg and imm |
or reg,reg2 | × | reg ← reg or reg2 |
ori reg,imm | × | reg ← reg or imm |
xor reg,reg2 | × | reg ← reg xor reg2 |
xori reg,imm | × | reg ← reg xor imm |
add reg,reg2 | × | reg ← reg + reg2 |
addi reg,imm | × | reg ← reg + imm |
sub reg,reg2 | × | reg ← reg - reg2 |
subi reg,imm | × | reg ← reg - imm |
cmp reg,reg2 | × | w ← reg - reg2 |
cmpi reg,imm | × | w ← reg - imm |
xor reg,reg2 | × | reg ← reg xor reg2 |
xori reg,imm | × | reg ← reg xor imm |
jz label | ○ | if (zero) goto label |
jnz label | ○ | if (non zero) goto label |
ja label | ○ | if (a>b) goto label |
jae label | ○ | if (a>=b) goto label |
jb label | ○ | if (a<b) goto label |
jbe label | ○ | if (a<=b) goto label |
cmpi MEM0, h'20' ; W = MEMO - 20h ja LABEL ; if (MEMO > 20h) goto LABEL