アセンブル指示命令詳細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


  次のページへ    目次ページへ