「PA.MAN」に関して
付録#2の「アセンブラ・ユーザーズマニュアル」(キットに付属の「PA.MAN」の一部)に
含まれる「拡張インストラクションセット」に関して、初心者には分かりにくいかもしれない部
分があるので説明します。
まず、fr、lite、addr9、・・・
ですが、これらはそれぞれファイルレジスタ、数値、ラベル、
・・・を表していますが、プログラムの中では自由に名前(fr、addr9)や数値(lite)を入れら
れます。また、bit は ra.1 、fr.7
のように書かれます。
次に、表記法についてです。例えば、
add fr,#lite fr += lite
の Description(説明) fr +=
lite
のところですが、これは「C言語」の表記法になって
います。分かりやすく書き換えると
fr ← fr + lite
つまり、ファイルレジスタ fr
に、もともの fr の値と 数値 lite
を加えた結果を代入すると
いう意味です。
以下、主なものについて紹介します。
fr += (bit == 1)?1 ・・・ bit =
1 なら fr ← fr + 1
if(fr1 == fr2) ・・・ もしも fr1
= fr2 ならば
if(fr1 != fr2) ・・・ もしも fr1
≠ fr2 ならば
fr& = lite ・・・ fr ← fr &
lite (fr ∧ lite の結果を fr
に代入する、∧はandの意味)
fr -- ・・・ fr ← fr−1
if(-- fr == 0) ・・・ if(fr−1= 0)
movsz w,++
fr if(fr +1 == 0)skip
・・・ fr + 1
の値が0ならskip、このとき fr
の値は変わらず、wに fr + 1
の値が入ります。
neg fr fr
= - fr 2の補数をとる
・・・
2の補数というのは、2進法においてマイナスの数を表すのに用いられますが、求め
方は全ビット反転して1足します。例えば、01001001
の2の補数は10110110
に1
を足して、10110111です。