[ÇÁ·Î±×·¥ ¸Þ¸ð¸®¶õ]
ÇÁ·Î±×·¥ ¸Þ¸ð¸®´Â PICÀÇ ±â´ÉÀ» ½ÇÇöÇϱâ À§ÇÑ ÇÁ·Î±×·¥ ±× ÀÚü¸¦
ÀúÀåÇÏ´Â ¸Þ¸ð¸®·Î, ROM(Read Only Memory)·Î µÇ¾î ÀÖ´Ù.
ÀÌ ¸Þ¸ð¸®¿¡ ½á³ÖÀ» ¶§´Â "PIC ¶óÀÌÅÍ"°¡ »ç¿ëµÈ´Ù.
[ÇÁ·Î±×·¥ ¸Þ¸ð¸®ÀÇ ±¸Á¶]
ƯÈ÷ ÇÁ·Î±×·¥ ¸Þ¸ð¸®ÀÇ ±¸Á¶¿¡ ´ëÇÏ¿© ÀÚ¼¼È÷ »ìÆì º¸±â·Î ÇÑ´Ù.
ÇÁ·Î±×·¥ ¸Þ¸ð¸®ÀÇ ¸ÊÀº ¾Æ·§ ±×¸²°ú °°ÀÌ µÇ¾î ÀÖÀ¸¸ç,
ÇÁ·Î±×·¥ Ä«¿îÅÍ(PC)°¡ 13ºñÆ®ÀÇ ±æÀÌÀ̹ǷÎ,
ÃÖ´ë 8K¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸® °ø°£À» Á÷Á¢ Ãë±ÞÇÒ ¼ö ÀÖ´Ù.
[¾îµå·¹½ºÀÇ ¹®Á¦¿Í ÇØ°á¹ý]
Àüü 8K¹ÙÀÌÆ®³ª µÇ´Â °ø°£À» ÁغñÇÒ ¼ö´Â ÀÖÁö¸¸,
À ±×¸²ÀÇ ÇÏÃø¿¡ ³ªÅ¸³½ ¹Ù¿Í °°ÀÌ GOTO³ª CALL µîÀÇ ¸í·ÉÀ¸·Î
¾îµå·¹½ºÇÒ ¼ö ÀÖ´Â °ø°£Àº ¸í·ÉÀÇ ¾îµå·¹½º ¸®ÅÍ·²ºÎ°¡
11ºñÆ®¹Û¿¡ ¾øÀ¸¹Ç·Î 2K¹ÙÀÌÆ®ÀÇ ¹üÀ§¹Û¿¡ ÇÒ ¼ö ¾ø´Ù.
ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ, "PAGE"¶ó°í ÇÏ´Â °³³äÀÌ »ý°Ü³µ´Ù.
ÀÌ PAGE¶õ ¾Æ·§ ±×¸²¿¡ ³ªÅ¸³½ ¹Ù¿Í °°Àº µ¿ÀÛÀ» ÇÑ´Ù.
Áï, 8K¹ÙÀÌÆ®¸¦ 2K¹ÙÀÌÆ® ´ÜÀ§ÀÇ "PAGE"¶ó°í ÇÏ´Â 4°³ÀÇ ´ÜÀ§·Î ³ª´©¾îÁö°í,
±×¸®°í "PCLATH" ·¹Áö½ºÅ͸¦ Ãß°¡ÇÏ¿© ¼³Ä¡, PCÀÇ »óÀ§ ºñÆ®·Î Ãß°¡Çϰí,
¸í·ÉÀÇ ¾îµå·¹½º ¸®ÅÍ·² 11ºñÆ®¿¡ ÀÌ PCLATH¸¦ ´õÇÏ¿© ÇÕ°Ô 13ºñÆ®ÀÇ ¾îµå·¹½º ±æÀÌ·Î Çϰí ÀÖ´Ù.
ÀÌ·¸°Ô ÇØ¼ GOTO ¸í·ÉÀ̳ª CALL ¸í·Éµµ Á÷Á¢ 8K¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸® °ø°£À» Ãë±ÞÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
ÀÌ PCLATHÀÇ µ¿ÀÛÀ» ¾Æ·§ ±×¸²¿¡¼ ÀÚ¼¼È÷ ¾ð±ÞÇϰí ÀÖ´Ù.
(PCLATH=Program Counter Latch High)
(1) ADDWF PCL µîÀÇ ¸í·ÉÀÏ ¶§
ÇÏÀ§ 8ºñÆ®ÀÇ PCLºÐÀº
¿¬»ê°á°ú°¡ ·ÎµåµÇ°í,
»óÀ§ 5ºñÆ®ºÐÀº PCLATH
·ÎºÎÅÍ ·ÎµåµÇ¾î 13ºñÆ®ÀÇ
¾îµå·¹½º ±æÀÌ·Î ÇÑ´Ù.
(2) GOTO, CALL ¸í·ÉÀÏ ¶§
ÇÏÀ§ 11ºñÆ®ºÐÀº
¸í·ÉÀÇ ¸®ÅÍ·²ÀÌ »ç¿ëµÇ°í,
»óÀ§ 2ºñÆ®ºÐÀº PCLATH°¡
»ç¿ëµÇ¾î 13ºñÆ®ÀÇ
¾îµå·¹½º·Î ½ÇÇàµÈ´Ù.
(3) RETURN, RETFIE, RETLW ¸í·ÉÀÏ ¶§
½ºÅà ¸Þ¸ð¸®¿¡¼ 13ºñÆ®°¡ Á÷Á¢ º¹±ÍµÈ´Ù.
µû¶ó¼ ÀÌ ¸í·ÉÀÏ ¶§¿¡´Â
PCLATH´Â ÇÊ¿ä¾ø´Ù.
[ÇÁ·Î±×·¡¹Ö Å×Å©´Ð]
Àüü ¸Þ¸ð¸® °ø°£À» ´ë»óÀ¸·Î ÇßÀ» ¶§ÀÇ ÇÁ·Î±×·¡¹ÖÀÇ ±¸Á¶¸¦ ¼³¸íÇÑ´Ù.
(1) ´Ù¸¥ PAGEÀÇ ¼ºê·çƾÀ» CALLÇÏ´Â ¹æ¹ý
ÇöÀçÀÇ PAGE·ÎºÎÅÍ ´Ù¸¥ PAGE¿¡ ÀÖ´Â ¼ºê·çƾÀ»
»ç¿ëÇÏ´Â °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ÄÚµùÇÑ´Ù.
MOVLW HIGH (SUB_1) ;¼ºê·çƾÀÇ »óÀ§ ¾îµå·¹½º
MOVWF PCLATH ;»óÀ§¸¦ PCLATH·Î
CALL SUB_1 ;¼ºê·çƾÀ¸·Î
---------
---------
SUB_1 --------- ;´Ù¸¥ page¿¡ ÀÖ´Â Åë»óÀÇ
--------- ;¼ºê·çƾ
RETURN
(2) Á÷Á¢ PCLATH¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý
PCLATH´Â SFR·Î ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ PCLATH
¸¦ Á÷Á¢ ¼³Á¤Çϰí, ±× ´ÙÀ½ CALLÀ̳ª GOTO ¸í·ÉÀ» ½ÇÇàÇÑ´Ù.
À̶§, PCLATH¸¦ ¼³Á¤Çصµ ±×°ÍÀÌ À¯È¿ÇÏ°Ô µÇ´Â °ÍÀº
´ÙÀ½ ¸í·ÉÀÇ ½ÇÇà½Ã¶ó°í ÇÏ´Â °ÍÀÌ Æ÷ÀÎÆ®ÀÌ´Ù.
¶Ç RETURN ¸í·ÉÀÏ ¶§´Â ÀüºÎ ½ºÅÃÀ¸·Î º¹±ÍÇϹǷÎ
PCLATHÀÇ ¼³Á¤Àº ÇÊ¿ä¾ø´Ù.
ORG 0x500
BSF PCLATH,3 ;page1À» ÁöÁ¤
CALL SUB_P1 ;¼ºê·çƾÀ¸·Î
---------
---------
ORG 0x900 ;page1
SUB_1 --------- ;page¿¡ ÀÖ´Â Åë»óÀÇ
--------- ;¼ºê·çƾ
RETURN
[¾ø´Â ¸Þ¸ð¸®¸¦ ¾×¼¼½ºÇß´Ù¸é?]8k¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸® °ø°£ÀÌ ÀÖÁö¸¸, ½ÇÁ¦·Î ¹°¸®ÀûÀ¸·Î´Â
PICÀÇ ½Ã¸®Áî¿¡¼ ½ÇÀåµÇ¾î ÀÖ´Â ¿ë·®Àº 0.5K¹ÙÀÌÆ®ºÎÅÍ
8K¹ÙÀÌÆ®±îÁö ´Ù¸£°Ô µÇ¾î ÀÖ´Ù.
±×·¡¼ ¸¸ÀÏ, ½ÇÁ¦·Î´Â ½ÇÀåµÇ¾î ÀÖÁö ¾ÊÀº ¸Þ¸ð¸®¸¦
¾×¼¼½ºÇß´Ù¸é ¾î¶»°Ô µÉ±î?
°á°ú´Â ÇÁ·Î±×·¥ Ä«¿îÅÍÀÇ »óÀ§ ºñÆ®´Â ¹«½ÃµÇ°í,
½ÇÀåµÇ¾î ÀÖ´Â ¾îµå·¹½º°¡ ¾×¼¼½ºµÈ´Ù.
¿¹¸¦ µé¸é Çϱâ¿Í °°ÀÌ ¾ø´Â °ø°£ÀÇ ¾îµå·¹½º »óÀ§´Â 0À¸·Î µÇ¸ç,
½ÇÀåµÇ¾î ÀÖ´Â °ø°£ÀÌ ¾×¼¼½ºµÈ´Ù.½ÇÀå ¸Þ¸ð¸® ¾×¼¼½º ¾îµå·¹½º ½ÇÁ¦ÀÇ ¾×¼¼½º
2K¹ÙÀÌÆ® 0000~07FF 0000~07FF
0800~0FFF 0000~07FF
1000~17FF 0000~07FF