ÀÚ¼¼ÇÑ ¾î¼Àºí Áö½Ã¸í·É(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
                movw         fio_1
else
                movlw        0x0la
                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


    ´ÙÀ½ ÆäÀÌÁö·Î        ¸ñÂ÷ ÆäÀÌÁö·Î