suika.suikawiki.org:
/~wakaba
/archive
/2005
/cprocessor
/エミュレータのようなものの使い方。
命令名 | 被演算子1 | 被演算子2 | 説明 |
---|---|---|---|
setixh |
id | IP ← IP + 2, IXH ← id | |
setixl |
id | IP ← IP + 2, IXL ← id | |
setaixh |
IP ← IP + 1, IXH ← A | ||
setaixl |
IP ← IP + 1, IXL ← A | ||
setbixh |
IP ← IP + 1, IXH ← B | ||
setbixl |
IP ← IP + 1, IXL ← B | ||
ldia |
id | IP ← IP + 2, A ← id | |
ldib |
id | IP ← IP + 2, B ← id | |
ldda |
IP ← IP + 1, A ← [IX] | ||
lddb |
IP ← IP + 1, B ← [IX] | ||
ldixha |
IP ← IP + 1, A ← IXH | ||
ldixla |
IP ← IP + 1, A ← IXL | ||
ldixhb |
IP ← IP + 1, B ← IXH | ||
ldixlb |
IP ← IP + 1, B ← IXL | ||
stda |
IP ← IP + 1, [IX] ← A | ||
stdb |
IP ← IP + 1, [IX] ← B | ||
adda |
IP ← IP + 1, A ← A + B (C, Z) | ||
addb |
IP ← IP + 1, B ← A + B (C, Z) | ||
suba |
IP ← IP + 1, A ← A − B (C, Z) | ||
subb |
IP ← IP + 1, B ← A − B (C, Z) | ||
anda |
IP ← IP + 1, A ← A & B (Z) | ||
andb |
IP ← IP + 1, B ← A & B (Z) | ||
ora |
IP ← IP + 1, A ← A | B (Z) | ||
orb |
IP ← IP + 1, B ← A | B (Z) | ||
nota |
IP ← IP + 1, A ← ¬A (Z) | ||
notb |
IP ← IP + 1, B ← ¬B (Z) | ||
inca |
IP ← IP + 1, A ← A + 1 (C, Z) | ||
incb |
IP ← IP + 1, B ← B + 1 (C, Z) | ||
deca |
IP ← IP + 1, A ← A − 1 (C, Z) | ||
decb |
IP ← IP + 1, B ← B − 1 (C, Z) | ||
cmp |
IP ← IP + 1, if A = B then Z = 1 else Z = 0 (Z) | ||
jp |
memH | memL | IP ← mem |
jpix |
IP ← IX | ||
jpc |
memH | memL | if C = 1 then IP ← mem else IP ← IP + 3 |
jpz |
memH | memL | if Z = 1 then IP ← mem else IP ← IP + 3 |
nop |
IP ← IP + 1 |
括弧内は、フラグが更新されることを意味します。 算術演算は符号無し2進数として行います。論理演算はビット毎に行います。
アセンブラのようなもので使われているアセンブリ言語の仕様。
COMMA
) で区切ります。
読点の前後には間隔 (SPACE
) を入れることができます。DIGIT ZERO
) であってはなりません。
符号無し8ビット整数でなければなりません。0x
の後、16進数字の列として記述します。
大文字・小文字は区別しません。
符号無し8ビット整数でなければなりません。0b
の後、2進数字の列として記述します。
符号無し8ビット整数でなければなりません。$
(DOLLAR SIGN
) で始まらなければなりません。
大文字・小文字は区別しません。
同じ名前の定数が複数宣言されていてはなりません。;
(SEMICOLON
) から行末までは注釈とみなし、
機械語翻訳では無視します。この無視は各行を解釈するより前に行います。