アセンブル指示命令詳細2
アセンブルの条件指定をする指示命令の詳細を説明しています。
- 【ELSE】Begin Alternative Assembly Block IF
【ENDIF】End Conditional Assenbly Blcok
【IF】Begin Conditional Assenbled Code Block
- 1.形式
if <exor>
----
else
----
emdif
2.説明
<expr>の条件がtrueの時だけ、IF文以下の命令がアセンブルされる。
elseがある時は、<expr>がfalseの時だけ、else文以下の命令がアセンブル
されます。いずれの場合にもENDIF文までの間の命令が対象となります。
連続したメモリ内に順次確保する。
3.使用例
if version==100 ;check current version
movlw 0x0a
movwf io_1
else
movlw 0x01a
movwf io_2
endif
- 【ENDW】End a While Loop
【WHILE】Perform Loop While Condition IsTrue
- 1.形式
while <expr>
----
----
endw
2.説明
<expr>内がtrueの間、whileからendwまでの間の命令を繰り返してアセンブル
命令として挿入する。<expr>==0の時はfalseと判定する。
但し、間に書ける命令は最大100行までで、繰り返しは256回が最大。
3.使用例
test_mac macro count
variable i
i = 0
while i < count
movlw i
i += 1
endw
endm
start
test_mac 5
end
【ENDM】End a Macro Definition
- 【MACRO】Declare Macro Definition
- 1.形式
<label> macro [<arg>,...,<arg>]
-----
-----
endm
2.説明
マクロ命令とは、繰り返し同じコードを使うような場合、1命令で
複数の命令を代替え出来るようにする命令群である。マクロ命令は
使う前にこのMACRO命令で定義されていなければならない。
3.使用例
Read macro device, buffer, count
movlw device
movwf ram_20
movlw buffer ;buffer address
movwf ram_21
movlw count ;byte count
call sys_21 ;read file call
endm
【EXITM】Exit from a Macro
- 1.形式
exitm
- 2.説明
マクロ命令群から強制的に抜け出して、マクロのアセンブルを終了させる。
ENDMと同じ効果。
3.使用例
test macro filereg
if filereg == 1
exitm
else
error "bad file assignment"
endif
endm
- 【IFDEF】Execute If Symbol has Been Defined
- 1.形式
ifdef <label>
2.説明
labelがすでに定義済みであれば、IFDEF以下の行をアセンブルする。
行はELSEかENDIFまでの行が対象。
3.使用例
#define testing1 ;set testing "on"
|
|
ifdef testing
<execute test code>
endif
- 【IFNDEF】Execute If Symbol has not Been Defined
- 1.形式
ifndef <lable>
2.説明
labelがまだ未定義であったらIFNDEF以下ELSEかENDIFまでの行を
アセンブルする。
3.使用例
#define testing ;set testing on
|
|
#undefine testing ;set testing off
ifndef testing
<execute test code>
endif
次のページへ 目次ページへ
-