ÀÚ¼¼ÇÑ ¾î¼Àºí Áö½Ã¸í·É(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
´ÙÀ½ ÆäÀÌÁö·Î ¸ñÂ÷ ÆäÀÌÁö·Î