Á¦¸ñ : Ç㸣¹Ì 2.0 - Hercules [2] ¾È³çÇϼ¼¿ä Ç㸣¹ÌÀÔ´Ï´Ù. ¿À´ÃÀº Çãŧ·¹½º¸¦ À§ÇÑ Å×Å© ´ÐÀ» Çϳª ¼Ò°³ÇØ º¸µµ·Ï ÇÏ°ÚÀ¾´Ï´Ù. Çãŧ·¹½º´Â 2 »öÀÔ´Ï´Ù. °ð Èò»ö°ú °ËÀº»öÀÌÁÒ. ÇÏÁö¸¸ 2 °¡Áö »öÀ¸·Î´Â ÀÔü¹öÆ°µîÀ» ³ª Ÿ³»´Âµ¥ ¿ªºÎÁ·ÀÔ´Ï´Ù. ´ëºÎºÐÀÇ Graphic-Based ÇÁ·Î±×·¥µéÀÌ ³×¸ð³­ ¹Ú½º¿¡ °ËÀº ±×¸²ÀÚµîÀ¸·Î ÀÏ°üÇß´ø ÀÌÀ¯ÀÇ ÇÑ°¡Áö°¡ ¹Ù ·Î ÀÌ°ÍÀ̾úÀ¾´Ï´Ù. VGA ·Î ÅëÀϵǾú´Ù¸é ¸ð¸¦±î Çãŧ·¹½º°¡ ¾Æ Á÷ ±¹³» PC ÀÇ ¸¹Àº ºÎºÐÀ» Â÷ÁöÇÏ°í Àֱ⠶§¹®¿¡ Çãŧ·¹½º¸¦ ÇÊ ¼öÀûÀ¸·Î Áö¿øÀº ÇØ¾ß °Ú´Âµ¥ GUI ÀÇ Ãß¼¼¿¡ ¸ÂÃß¾î Design À» ÇÏ·Á°í ÇÏ´Ï Çãŧ·¹½º Ä«µåÀÇ À庮¿¡ ¸·È÷°í ¸¶´Â °ÍÀÔ´Ï´Ù. ÇÏ Áö¸¸ ³ª¸§´ë·Î ÇØ°áÃ¥Àº ã¾Æ¾ß ÇÑ´Ù°í »ý°¢ÇÕ´Ï´Ù. VGA ·Î ÅëÀÏ µÈ´Ù¸é ÇÁ·Î±×·¡¸ÓÀÇ ÀÔÀå¿¡¼­´Â ÁÁ°ÚÁö¸¸ ±×·¸Áö ¾Ê´Ù¸é Çãŧ·¹ ½º¿¡¼­µµ ³ª¸§´ë·Î µðÀÚÀÎÀ» Çغ¼¼ö°¡ ÀÖ°ÚÁÒ. Ç㸣¹Ì 1.5 ¿¡¼­ ´Â ÆÐÅÏ Ä¥Çϱâ(Pattern Fill) ¿¡ ÀÇÇؼ­ ÀÌ ¹®Á¦¸¦ ¾î´ÀÁ¤µµ ÇØ °áÇÏ°í ÀÖÀ¾´Ï´Ù. ÀÚ ´ÙÀ½ÀÇ ¼¼°¡Áö ÆÐÅÏÀ» ¸Ö¸®¼­ º¸¼¼¿ä.. ........ . . . . . . . . ........ . . . . ........ . . . . . . . . ........ . . . . ........ . . . . . . . . ........ . . . . ........ . . . . . . . . Á¡À» Âï°í (1) ¾ÈÂï°í (0) ÀÇ Á¶ÇÕÀ» Àû´çÈ÷ ÇÔ¿¡ µû¶ó¼­ ¼­·Î ´Ù¸¥ ÆÐÅÏÀÌ ¾ò¾îÁö´Âµ¥.. ÀÌ°ÍÀÌ ¹Ù·Î ÆÐÅÏ Ä¥Çϱâ ÀÔ´Ï´Ù. Çã ŧ·¹½º¿¡¼­´Â ÆÐÅÏ Ä¥Çϱ⿡ ÀÇÇؼ­ '»ö' À̶ó´Â °³³äÀ» ¾µ¼ö°¡ ÀÖ°Ô µË´Ï´Ù. Ç㸣¹Ì 1.5 ¿¡¼­´Â VGA ¿¡¼­ ¾²ÀÌ´Â 16 color Çϳª Çϳª ¸¶´Ù Çãŧ·¹½º¿¡¼­ Pattern À» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿© VGA ¿¡¼­ µðÀÚÀÎÀ» Çϸé Çãŧ·¹½º¿¡¼­´Â ±×°ÍÀ» Pattern À¸·Î ¹Ù²Ù¾î ºñ½ÁÇÑ È­¸éÀ» º¸¿©ÁÙ ¼ö ÀÖµµ·Ï ÇÏ°í ÀÖÀ¾´Ï´Ù. À§ÀÇ ¼¼°¡Áö ÆÐ ÅÏÀº Â÷·Ê´ë·Î WHITE,LIGHTGRAY,DARKGRAY ·Î ¾²ÀÔ´Ï´Ù. ¹°·Ð Á¡ ÀÌ ÂïÈù ºÎºÐÀÌ Èò»ö(1) ÀÔ´Ï´Ù. µû¶ó¼­ Ç㸣¹Ì 1.5 ¿¡¼­ ÇöÀç Áö¿øÇÏ´Â Çãŧ·¹½ºÀÇ '»ö' Àº 4 °¡Áö ÀÔ´Ï´Ù. (ZERO , WHITE , LIGHTGRAY,DARKGRAY) ±ÛÀÚ¸¦ ¾µ¶§ µîÀº ¾ÆÁ÷µµ 2 »öÁö¿øÀÌÁö¸¸ Fill,°¡·Î line,¼¼·Î line µîÀº Pattern À» ¾µ ¼ö ÀÖ°Ô µÈ °ÍÀÔ ´Ï´Ù. ÇöÀç Quick-Window ·çƾµî Ç㸣¹Ì 1.5 ¿¡¼­ Á¤ÇÏ°í ÀÖ´Â VGA È­¸éÀÇ µðÀÚÀÎÀº µû¶ó¼­ À§ÀÇ 4 »öÀ» ÀÌ¿ëÇؼ­ µðÀÚÀÎ µÇ¾ú À¾´Ï´Ù. ÀÌ 4 »öÀ» ÀÌ¿ëÇÏ´Â ÇÑ VGA ¿Í Hercules ´Â ºñ½ÁÇÑ È­¸é À» ¾òÀ» ¼ö ÀÖ°Ô µË´Ï´Ù. ´Ù¸¥ »öµéÀº Hercules ¿¡¼­´Â ÀÏ´Ü WHITE ¿Í °°°Ô °¡Á¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº »ç¿ëÀÚ°¡ Ư¼öÇÔ¼ö¿¡ ÀÇÇؼ­ Á¤ÇØÁø ÆÐÅÏÀ¸·Î ÇÒ´çÇÒ ¼ö ÀÖµµ·Ï ¹è·ÁÇÏ°í ÀÖÀ¾´Ï´Ù. Line ¿¡ ¼­ ¾²ÀÌ´Â ÆÐÅÏ°ú Fill ¿¡¼­ ¾²ÀÌ´Â ÆÐÅÏÀ» °¢°¢ ÁöÁ¤ÇÒ ¼ö ÀÖÀ¾ ´Ï´Ù. ±×·³ À§ÀÇ ÆÐÅÏÀ» ³ªÅ¸³»´Â ¹æ½ÄÀ» »ý°¢ÇØ º¸°ÚÀ¾´Ï´Ù. Fill ÂÊÀÌ ¼³¸íÀÌ ½¬¿ì´Ï Fill ÇÔ¼ö¸¦ ¸¸µé¶§¸¦ »ý°¢ÇØ º¸°ÚÀ¾´Ï ´Ù. ¾Õ¿¡¼­ ÁÖÁöÇÑ ¹Ù¿Í ¸¶Âù°¡Áö·Î Boxfill ÇÔ¼öÀÇ ÁÂÇ¥ ÁöÁ¤´Ü À§´Â ¸ðµÎ µµÆ®ÀÔ´Ï´Ù. µû¶ó¼­ ¿¹Àü 1.0 ¿¡¼­ ¹Ú½ºÀÇ ±×¸²ÀÚ¸¦ ±×¸®´ø°Í ó·³ 8x16 Font ¸¦ ¼³Á¤ÇÏ¿© È­¸é¿¡ Ç¥½ÃÇØ ÁÖ´Â ¹æ½Ä À¸·Î´Â ¾ÈµË´Ï´Ù. ±×·¯¹Ç·Î ½ÇÁ¦·Î 'Fill' À» ÇØÁÖ¾î¾ß Çϴµ¥ Àú´Â xmask,ymask ¸¦ µû·Î ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ÅÃÇßÀ¾´Ï´Ù. Áï Fill À» Çϴµ¥´Â xmask ¿Í ymask ¸¦ ¼³Á¤ÇÏ°Ô µË´Ï´Ù. xmask ´Â y Á ǥ°¡ ¹Ù²ð¶§ ¸¶´Ù Çϳª¾¿ rotate µÇ°í,ymask ´Â 1 À̸é xmask ¸¦ Âï°í,¾Æ´Ï¸é ZERO ¸¦ Ãâ·ÂÇÕ´Ï´Ù. ±×¸®°í Çϳª¾¿ rotate ÇÕ´Ï´Ù. À̸¦ Á¤¸®ÇØ º¸°ÚÀ¾´Ï´Ù. 1. ymask ¸¦ ¿ÞÂÊ rotate 2. ¸¸ÀÏ Carry °¡ ¹ß»ýÇϸé xmask ¸¦ Âï°í 3. ¾Æ´Ï¸é 0 À» Âï´Â´Ù. (OverWrite) 4. xmask ¸¦ ¿ÞÂÊ rotate 5. ¹Ýº¹ ¹°·Ð 2,3 ¿¡¼­ Âï´Â´Ù´Â °ÍÀº ºñÆ® ¸¶½ºÅ© (bitmask) ¸¦ °í·ÁÇÑ µµÆ®´ÜÀ§ÀÇ Ãâ·ÂÀ̾î¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ 3 ¿¡¼­ 0 À» Âï´Â´Ù´Â °ÍÀº ZERO ÀÇ »öÀ» ÂïÀ»¶§¸¦ »ý°¢ÇØ º¸½Ã¸é µÇ´Âµ¥.. ÂïÇô¾ß ÇÒ ºÎºÐ ¸¸ Overwrite Ç쵂 ÂïÈ÷¸é ¾ÈµÇ´Â ºÎºÐ (bitmask °¡ 0 ÀÎ ºÎºÐ) Àº È­¸éÀ» ±×´ë·Î ³öµÓ´Ï´Ù. À̶ÇÇÑ ZERO ÀÇ »öÀ» ÂïÀ» ¶§(Àú¹ø °­ÁÂ) ¿Í °ÅÀÇ ºñ½ÁÇÑ Ã³¸®¸¦ °ÅÄ¡°Ô µË´Ï´Ù. ±×·¯¸é ¾ÕºÎºÐ¿¡ ³ª¿Ô´ø ¼¼°¡Áö ÆÐÅÏ¿¡ ´ëÇÑ mask ¸¦ ±¸Çغ¼±î¿ä ? ¸»ÇҰ͵µ ¾øÀÌ WHITE ´Â xmask=0xff,ymask=0xff ÀÔ´Ï´Ù. LIGHTGRAY ´Â xmask =0xaa,ymask=0xff ÀÌ°í,DARKGRAY ´Â xmask=0xaa,ymask=0xaa ÀÔ´Ï ´Ù. ÀÌ·¯ÇÑ ÇÒ´çÀ¸·Î Çãŧ·¹½º¿¡¼­ 4 '»ö' À» ³ªÅ¸³¾ ¼ö ÀÖ°Ô µÇ ´Â °ÍÀÔ´Ï´Ù. xmask,ymask ¸¦ ´Ù¸¥ ¿©·¯°¡Áö °ªÀ¸·Î ¹Ù²Ù¾î º¸´Â °Íµµ Àç¹ÌÀÖÀ¾´Ï´Ù. »ç½Ç 16 »öÀ» 8x8 bit Pattern À¸·Î Àû´çÈ÷ ¹èÁ¤ÇÏ¿© Hercules ¿¡¼­ 16 color °¡±îÀÌ ³ªÅ¸³¾ »ý°¢µµ Çغ¸¾Ò À¸³ª ¿ªºÎÁ·ÀÌ´õ±º¿ä. ±×·¡¼­ ÀÏ´Ü 4 »öÀ¸·Î ÇßÀ¾´Ï´Ù. ÀüüÀûÀÎ Ç㸣¹Ì 1.5 ÀÇ µðÀÚÀÎÀÌ È¸»ö Áß½ÉÀÌ¶ó º° ¹®Á¦°¡ ¾øÀ» °Å¶ó°í »ý°¢ÇÕ´Ï´Ù. ±×·³ ´ÙÀ½¿¡´Â line pattern À» ¼³¸íÇØ º¸µµ·Ï ÇÏ°Ú À¾´Ï´Ù. Ç㸣¹Ì 1.5 ¿¡´Â µµÆ®´ÜÀ§ÀÇ °¡·Î¼± ±ß±â,¼¼·Î¼± ±ß±â°¡ ÁغñµÇ¾î ÀÖÀ¾´Ï´Ù. Çãŧ·¹½º¿¡¼­´Â ÀÌ°Í¿¡ ÆÐÅÏÀ» Áö¿øÇϴµ¥.. °ð Dot ¶óÀεîÀÌ °¡´ÉÇØ Áý´Ï´Ù. °¡·Î¼±¿¡ ÇÒ´çµÇ´Â ÆÐÅÏÀ» 8 bit ·Î ÁÖ¸é ÀÌ°ÍÀ» µµÆ® ÁÂÇ¥¿¡ ÀÇÇؼ­ Àû´çÈ÷ Àß¶ó¼­ È­¸é¿¡ Ç¥½ÃÇØ ÁÖ´Â °Ì´Ï´Ù. ¼¼·Î¼±µµ ¸¶Âù°¡Áö°¡ µÇ°ÚÀ¾´Ï´Ù. °¡·Î¼±À» ±×¸±¶§´Â ±× ÆÐÅÏÀ» ½ÇÁ¦·Î È­¸é¿¡ ÂïÀ»¶§ »ç¿ëÇÏ´Â °ÍÀÌ°í ¼¼·Î ¼±ÀÇ °æ¿ì Y Pattern ÀÇ ºñÆ®°¡ 1 À̸é È­¸é¿¡ Ç¥½ÃÇÏ°í 0 ÀÌ¸é ¾ÈÂï´Â °úÁ¤À» ¹Ýº¹Ç쵂 »ö±ò ZERO ÀÇ Ã³¸®´Â ¾çÂÊ ´Ù ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. ¼±ÀÇ ÆÐÅϼ³Á¤Àº º°·Î ¾²Áö ¾Ê½À´Ï´Ù. Default ´Â White ´Â °¡·Î¼±,¼¼·Î¼± °øÈ÷ 0xff,0xff ÀÌ°í,Darkgray ´Â 0x00,0x00 ÀÔ´Ï´Ù. LightGray ´Â 0xaa,0xaa ·Î ÇÏ¿´À¾´Ï´Ù. ZERO ¿ª½Ã 0x00,0x00 ÀÌ µÇ°ÚÀ¾´Ï´Ù. Áï ¶óÀο¡ À־´Â DARKGRAY ¿Í ZERO ÀÇ Â÷ÀÌ°¡ ¾ø´Â ¼ÀÀÌ µÇ°ÚÀ¾´Ï´Ù. À§¿¡¼­ Âß ¼³¸íÇÑ 'ÆÐÅÏ' ÀÇ °³³äÀº Hercules ¿Í VGA ¿¡ ¼­ ºñ½ÁÇÑ µðÀÚÀÎÀ» ¾µ ¼ö ÀÖ´Ù´Â µ¥¿¡ ±× °¡Ä¡°¡ ÀÖ´Ù°í ÇÏ°ÚÀ¾ ´Ï´Ù. Ç㸣¹Ì 1.5 ¿¡¼­ ÁغñµÈ Default µðÀÚÀÎÀ» ÀÌ¿ëÇÒ °æ¿ì¿¡ ´Â Hercules ¿Í VGA ÀÇ Â÷À̸¦ »ý°¢ÇÒ ÇÊ¿ä°¡ ¾øÀ¾´Ï´Ù. ¾Ë¾Æ¼­ Àû´çÈ÷ ¹Ù²Ù¾î Áִϱî¿ä. °£´ÜÇÏ°Ô ¼³¸íÇϱä ÇßÁö¸¸ 'ÆÐÅÏ' °ú 'ZERO Ä÷¯Ã³¸® (Àú¹ø °­Á Âü°í)','Çãŧ·¹½º¿¡¼­ÀÇ µµÆ®Ãâ·Â' Àº »ó´çÈ÷ Áß¿äÇÑ ºÎºÐÀÔ´Ï´Ù. Ç㸣¹Ì 1.5 ÀÇ Çãŧ·¹½º ¸ðµâÀ» ÀÌÇØÇÏ·Á¸é À§ÀÇ ¼¼°¡Áö °³³äÀ» ÀÌÇØÇØ¾ß ÇÕ´Ï´Ù. Ç㸣¹Ì 1.5 ÀÇ Çãŧ·¹½º ¸ðµâÁß ½ºÅ©·Ñ,ÆÐÅÏÄ¥Çϱâ,¶óÀα߱⠸ðµâÀº ¼Óµµ¸¦ À§ Çؼ­ ±× 󸮸¦ ¼¼ºÎºÐÀ¸·Î ³ª´©¾î ÇÕ´Ï´Ù. ¹ÙÀÌÆ® ´ÜÀ§ ÁÂÇ¥·Î Ç¥½ÃµÇ´Â °¡¿îµ¥ ºÎºÐ,±×¸®°í ¿ÞÂÊ,¿À¸¥ÂʺκÐÀÔ´Ï´Ù. ¿ÞÂÊ,¿À¸¥ ÂÊ ºÎºÐÀº µµÆ®ÁÂÇ¥¿¡ °É¸®¹Ç·Î Masking µî º¹ÀâÇÑ ¾²±â °úÁ¤À» Æ÷ÇÔÇϹǷΠ´À¸³´Ï´Ù. °¡¿îµ¥ ºÎºÐÀº ºí·° Àü¼ÛÀ» Æ÷ÇÔÇϹǷΠºü ¸¨´Ï´Ù. µû¶ó¼­ Masking µîÀ» ÇÏ´Â ºÎºÐÀº ÃÖ¼ÒÈ­ µÇ°í,ºü¸¥ ¼Ó µµ¸¦ º¸Àå¹ÞÀ» ¼ö ÀÖ´Â °ÍÀÌÁö¿ä. À̶§ÀÇ Masking ¿¡ ´ëÇؼ­ Á¶ ±Ý ¼³¸íµå¸®°ÚÀ¾´Ï´Ù. ¿ì¼± hgHBoxFill ÇÔ¼ö¸¦ º¸°ÚÀ¾´Ï´Ù. void hgHBoxFill(int x1,int y1,int x2,int y2,int color) { int xs=x1/8+1; int xe=x2/8-1; unsigned char rmask=~get_mask(x2+1); if (!rmask) rmask=0xff; hercfill(xs,y1,xe,y2,color); hsidefill(xs-1,y1,y2,color,get_mask(x1)); hsidefill(xe+1,y1,y2,color,rmask); } hercfill Àº ¹ÙÀÌÆ®´ÜÀ§ °¡¿îµ¥ Ãâ·Â ¸ðµâÀÔ´Ï´Ù. hsidefill Àº ¿ÞÂÊ,¶Ç´Â ¿À¸¥ÂÊ ³¡À» Ãâ·ÂÇ쵂 mask ¸¦ ÀÔ·ÂÀ¸·Î ¹Þ°í ÀÖÀ¾´Ï ´Ù. ½ºÅ©·Ñ¾÷,´Ù¿î,°¡·Î¼±,¼¼·Î¼±µîÀÌ ¸ðµÎ ÀÌ·± Çü½ÄÀ¸·Î sub ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ¹Ú½ºÄ¥Çϱâ,¶óÀα߱â,½ºÅ©·ÑµîÀÇ ¼Ò½º´Â ´Ù À½±âȸ¿¡ ¼Ò°³Çϵµ·Ï ÇÏ°í,¿©±â¼­´Â ¾ç ¿·ÀÇ Masking ¿¡ ´ëÇؼ­ ¾Ë¾Æº¸°ÚÀ¾´Ï´Ù. 1) ¹Ú½ºÄ¥Çϱâ ÀÇ °æ¿ì À§¿¡¼­ Çãŧ·¹½º´Â ÆÐÅÏ Ä¥Çϱ⠹æ¹ýÀ» ¾´´Ù°í ÇßÀ¾´Ï ´Ù. ±×·¸´Ù¸é ÇÑ°¡Áö »ý°¢ÇØ¾ß ÇÒ °ÍÀÌ ÀÖÀ¾´Ï´Ù. ¾Æ·¡ÀÇ ±×¸² À» º¾½Ã´Ù. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . <ÇöÀçÈ­¸é> <»õ·ÎÄ¥ÇÒ³»¿ë> ÆíÀÇ»ó Á¡ÀÌ ÂïÈù °÷Àº 1,¾Æ´Ï¸é ¹«Á¶°Ç 0 À̶ó°í ÇսôÙ.»õ·Î Ä¥ÇÒ ³»¿ëÀ» OR ÇÑ´Ù¸é °£´ÜÈ÷ ÇØ°áµÇÁö¸¸ OR Àº °ãÄ¡±â ¿¬»ê À̹ǷΠ¹®Á¦°¡ »ý±é´Ï´Ù. Áï WHITE ¹è°æÀ§¿¡ LIGHTGRAY ·Î Ä¥ Çϸé LIGHTGRAY °¡ ³ªÅ¸³ª¾ß ÇÒÅÙµ¥,,OR Çϸé WHITE °¡ ³ªÅ¸³¯ »ÓÀÔ´Ï´Ù. µû¶ó¼­ MOVE ¿¡ °¡±î¿î ¿¬»êÀ» ÇØ¾ß Çϴµ¥.. °¡¿î µ¥ÀÇ ¹ÙÀÌÆ® ÁÂÇ¥ÀÌ¿ëºÎºÐÀº REP movsb µî ºí·° Àü¼ÛÀ» ÀÌ¿ëÇÒ ¼ö ÀÖÀ¾´Ï´Ù. ÇÏÁö¸¸ ¾ç³¡ºÎºÐÀº Masking ÀÌ ÇÊ¿äÇϹǷΠmov ¸¦ ÀÌ¿ëÇÒ ¼ö´Â ¾ø°í Á¶±Ý Ư¼öÇÑ ¹æ¹ýÀ» »ç¿ëÇØ¾ß Çϴµ¥ Á¤ ¸®Çغ¸¸é ´ÙÀ½°ú °°½À´Ï´Ù. * ah ´Â ºñÆ®¸¶½ºÅ© * al Àº ¾²¿©Áú µ¥ÀÌÅÍ mov al,ds:[si] ; ¾²¿©Áú µ¥ÀÌÅ͸¦ ·Îµå and al,ah ; bit masking not ah ; ºñÆ®¸¶½ºÅ© ¹ÝÀü and es:[di],ah ; È­¸é¿¡ ¹ÝÀüµÈ ¸¶½ºÅ©·Î and not ah ; ºñÆ®¸¶½ºÅ© º¹±Í or es:[di],al ; µ¥ÀÌÅÍ ¾²±â À§ Äڵ尡 ÇÏ´Â ÀÏÀ» Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°½À´Ï´Ù. °ð Bit mask ´Â 8 bit Áß ¾²¿©Áú¼ö ÀÖ´Â ºñÆ®°¡ 1 ÀÔ´Ï´Ù. À̶§ µ¥ÀÌÅ͸¦ ¾µ¶§´Â È­¸é°ú OR À» ÇØ¾ß Çϴµ¥ È­¸é°ú °ãÄ¡Áö ¾Ê°Ô µÇ¾î¾ß ÇÕ´Ï´Ù. ´Ù½Ã ¸»Çϸé,Bit mask ÀÇ 8 bit Áß 1 ÀÎ ºñÆ®´Â ¾²¿© Áö´Â µ¥ÀÌÅÍ·Î ´ëÄ¡ÇÏ°í,0 ÀÎ ºñÆ®´Â ¿ø·¡ÀÇ È­¸éµ¥ÀÌÅ͸¦ À¯ ÁöÇØ¾ß ÇÏ´Â °ÍÀÔ´Ï´Ù. Á¶±Ý º¹ÀâÇÏÁö¸¸ À§¿Í °°ÀÌ ÇÏ¸é µË´Ï ´Ù. Áï ÀÏ´Ü ¾²¿©Á®¾ß ÇÒ µ¥ÀÌÅ͸¦ Bitmask ¿Í And ÇÕ´Ï´Ù. ±× ·¯¸é µ¥ÀÌÅÍÁß mask °¡ 0 ÀÎ ºñÆ®´Â ¸ðµÎ 0 À¸·Î µË´Ï´Ù. ±×¸® °í´Â Bitmask ¸¦ ¹ÝÀüÇÏ°í ¾²¿©Áú È­¸é°ú and ÇÕ´Ï´Ù. ±×·¯ ¸é.. ¿ø·¡ Bitmask °¡ 1 À̾ú´ø ºÎºÐÀº 0 ÀÌ µÇ¾úÀ» °ÍÀ̹ǷΠBitmask °¡ 1 ÀÎ ºñÆ®¿Í ´ëÀÀÇÏ´Â È­¸éÀ§Ä¡ÀÇ ºñÆ®´Â 0 ÀÌ µË ´Ï´Ù. ¿ø·¡ÀÇ Bitmask °¡ 0 À̾ú´ø ºÎºÐÀº 1 ÀÌ µÇ°í,ÀÌ À§Ä¡ ÀÇ È­¸éÀÇ ºñÆ®´Â ±×´ë·Î ³²¾ÆÀÖ°Ô µË´Ï´Ù. ÀÚ..±×·³ ÀÌÁ¦ µ¥ ÀÌÅ͸¦ OR ·Î ¾²¸é bitmask °¡ 1 ÀÎ ºÎºÐÀÇ È­¸éºñÆ®´Â ¸ðµÎ 0 À̹ǷΠ¿øÇÏ´Â ¸ñÀûÀ» ´Þ¼ºÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾îº¸°Ú À¾´Ï´Ù. bitmask = 11110000 memory = 10101010 data = 01100110 ¿ì¼± data ¿Í bitmask ¸¦ and Çϸé.. -> 01100000 bitmask ¸¦ ¹ÝÀüÇÏ°í memory ¿Í and Çϸé.. -> 00001010 ´Ù½Ã bitmask ´Â ¹ÝÀü½ÃÅ°°í (µÚÀÇ Ã³¸®¸¦ À§ÇÔ) data ´Â memory ¿Í or ½ÃÅ°¸é.. => 01101010 Áï bitmask °¡ 1 ÀÎ ºÎºÐÀº data °¡ ¾²¿´°í,,0 ÀÎ ºÎºÐÀº memory °¡ ¾²ÀÌ°Ô µÈ´Ù. µû¶ó¼­ Ä¥ÇØÁú ºÎºÐÀº OVERwrite µÇ¸é ¼­ ¾²¿©ÁöÁö¸¸ Ä¥ÇØÁ®¼­´Â ¾ÈµÉ ºÎºÐÀº °Çµå¸®Áö ¾Ê°Ô µÈ´Ù. µµÆ®´ÜÀ§·Î ±×¸²¹è°æµîÀÇ ÀϺκп¡ ¹Ú½ºÄ¥ÇϱâµîÀ» Çصµ Á¤»ó ÀûÀ¸·Î µ¿ÀÛÇÏ°Ô µÇ´Â °ÍÀÌ´Ù. 2) ¶óÀÎ ±ß±â ¹Ú½ºÄ¥Çϱâ¿Í °ÅÀÇ °°Àº ¾Ë°í¸®ÁòÀ¸·Î µ¿ÀÛÇÕ´Ï´Ù. ÇÏÁö¸¸ °¡ ·Î¼± ±ß±â¿Í ¼¼·Î¼± ±ß±â°¡ ¾à°£ Â÷ÀÌ°¡ Àִµ¥ ¾Ë°í¸®ÁòÀ» »ì Æ캸°ÚÀ¾´Ï´Ù. ¿ì¼± °¡·Î¼± ±ß±â´Â °¡·Î·Î ¼±À» ±ß´Â °ÍÀε¥ Xpattern ÀÌ ½ÇÁ¦ ¾²´Â µ¥ÀÌÅÍ°¡ µË´Ï´Ù. Áï Xpattern ( °¡·Î 8 bit ) ¸¦ È­¸é¿¡ Ãâ·ÂÇÔ¿¡ À־ ¾ç³¡À» Masking ÇØÁØ°ÍÀÌ ¶ó°í º¸¸é µÇ°ÚÀ¾´Ï´Ù. °¡¿îµ¥ ºÎºÐÀº REP stosb ¿¡ ÀÇÇؼ­ ±× Àú xpattern À» ä¿ì±â¸¸ ÇÏ¸é µÇ¹Ç·Î ¼³¸íÀ» »ý·«ÇÏ°ÚÀ¾´Ï´Ù. ¾ç³¡ÀÇ Ã³¸®¿¡ ´ëÇؼ­ ¾Ë¾Æº¸°ÚÀ¾´Ï´Ù. ¾ç³¡ÀÇ Ã³¸®´Â ±âº»Àû À¸·Î Fill °ú ´Ù¸¦¹Ù°¡ ¾øÀ¾´Ï´Ù. ½ÇÁ¦·Î ·çƾÁßÀÇ ÀϺθ¦ º¸ °ÚÀ¾´Ï´Ù. mov ah,BYTE PTR xpattern mov al,BYTE PTR mask and ah,al not al and es:[bx],al or es:[bx],ah ah ¿¡ xpattern,al ¿¡´Â Bitmask °¡ µé¾îÀÖÀ¾´Ï´Ù. ¿ì¼± ah ¿Í al À» and (masking) ÇÕ´Ï´Ù. ±×¸®°í al À» ¹ÝÀüÇÏ°í.. È­¸é ³»¿ë°ú and ÇÏ°í.. masking µÇ¾ú´ø xpattern À» È­¸é¿¡ OR ÇÕ ´Ï´Ù.. ¹Ú½º Ä¥ÇϱâÀÇ ¾ç¿·À» Ä¥ÇÏ´ø ¾Ë°í¸®Áò°ú °°´Ù´Â °ÍÀ» ¾Ë¼ö ÀÖÀ¾´Ï´Ù. ´Ù¸¸ ´Ù½Ã bitmask ¸¦ ¾µÀÏÀÌ ¾ø±â ¶§¹®¿¡ al À» ´Ù½Ã not al ·Î µÇµ¹¸®Áö ¾Ê¾ÒÀ¾´Ï´Ù. 3) ½ºÅ©·Ñ ¾÷/´Ù¿î ½ºÅ©·Ñ ¾÷°ú ´Ù¿îÀº ±âº»ÀûÀ¸·Î °°Àº °ÍÀ̹ǷΠ½ºÅ©·Ñ ¾÷¿¡ ´ë Çؼ­¸¸ ¼³¸íÇÏ°ÚÀ¾´Ï´Ù. 1.0 ¿¡¼­µµ ½ºÅ©·Ñ ¾÷/´Ù¿îÇÔ¼ö´Â ½º Å©·ÑÀ» µµÆ®´ÜÀ§·Î ÇÒ ¼ö ÀÖ¾úÀ¾´Ï´Ù. ÇÏÁö¸¸ ½ºÅ©·Ñ µÇ´Â ¹ü À§¸¦ µµÆ®´ÜÀ§·Î Á¦¾îÇÏÁö´Â ¸øÇßÁÒ. ¹Ù·Î ÀÌ°ÍÀÌ 1.5 ¿¡¼­ °¡ ´ÉÇÏ°Ô Çؾ߸¸ ÇÏ´Â ºÎºÐÀÔ´Ï´Ù. µµÆ®´ÜÀ§·Î ¿¬ À©µµ¿ìÀÇ ³»ºÎ ¸¦ ½ºÅ©·Ñ ÇÏÀÚ¸é ½ºÅ©·Ñ µÇ´Â ¹üÀ§¸¦ µµÆ®´ÜÀ§·Î ÇÒ ¼ö ÀÖ¾î ¾ß Çϴϱî¿ä.. ¿ª½Ã ¹ÙÀÌÆ®´ÜÀ§·Î ´ëÇ¥µÇ´Â °¡¿îµ¥ ºÎºÐ°ú ¿Þ ÂÊ,¿À¸¥ÂÊ side ·Î ³ª´©¾î ¼¼¹ø ½ºÅ©·Ñ ÇÏ°Ô µË´Ï´Ù. Âü..¹ÙÀÌ Æ® ºÎºÐÀº ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù. µµÆ®ÁÂÇ¥ (x1,y1)~(x2,y2) -> ¹ÙÀÌÆ® ÁÂÇ¥ (x1/8+1,y1,x2/8-1,y2) (´Ü x2>x1) °¡¿îµ¥ ºÎºÐ¿¡ ´ëÇÑ ½ºÅ©·ÑÀº 1.0 °ú ´Ù¸¦ °ÍÀÌ ¾øÀ¾´Ï´Ù. ÀÌ ºÎºÐÀº °í¼ÓÀ¸·Î ¼öÇàµÇÁÒ. ÇÏÁö¸¸ ¾ç Side ¿¡ ´ëÇÑ ½ºÅ©·ÑÀº masking ÀÌ Æ÷ÇÔµÈ º¹ÀâÇÑ Ã³¸®ÀÔ´Ï´Ù. »ç½Ç ¿ª½Ã ¹Ú½ºÄ¥Çϱ⠿¡¼­ »ç¿ëµÈ Å×Å©´ÐÀ» ±×´ë·Î »ç¿ëÇÏ°í ÀÖÀ¾´Ï´Ù. ¾µ µ¥ÀÌÅͶó ´Â °ÍÀÌ Á» ´Þ¶ó¼­ ±×·¸ÁÒ.. ¿¹¸¦ µé¾î¼­ ¾Æ·¡ÀÇ ¿¹¸¦ º¾½Ã´Ù. y ÁÂÇ¥ 5 : 00101010 y ÁÂÇ¥ 6 : 01111100 bitmask : 00001111 À§¿Í °°Àº °æ¿ì y ÁÂÇ¥ 6 À» y ÁÂÇ¥ 5 ·Î ¿Ã¸®´Â ÀÛ¾÷À» ÇÑ´Ù °í °¡Á¤ÇսôÙ. ÀÌ·¯ÇÑ ÀÛ¾÷À» ¹Ýº¹ÇÏ´Â °ÍÀÌ °ð ½ºÅ©·ÑÀÔ´Ï ´Ù. À§ ¿¹¿¡¼­´Â bitmask °¡ 00001111 À̹ǷΠ¿À¸¥ÂÊ 4 ºñÆ®¸¸ À§·Î ¿Ã·ÁÁÖ¾î¾ß °ÚÁÒ. ÀÏ´Ü y ÁÂÇ¥ 6 À» ¾ò¾î¿ÂÈÄ bitmasking ÇÕ´Ï´Ù. ±×¸®°í´Â bitmask ¸¦ ¹ÝÀüÇÏ°í y ÁÂÇ¥ 5 ¿Í and ÇÕ´Ï ´Ù. bitmask ´Â °è¼Ó ¾²À̹ǷΠ´Ù½Ã ¹ÝÀüÇصξî¾ß °ÚÁÒ. ±×ÈÄ Ã³À½¿¡ masking Çß´ø data ¸¦ y ÁÂÇ¥ 5 ¿¡ or ·Î ¾²¸é µË´Ï´Ù. Áï ¹Ú½º Ä¥Çϱâ¿Í °°Àº °Ì´Ï´Ù. Á¶±Ý ·çƾÀ» »ìÆ캼±î¿ä.. asm mov di,bx asm mov si,dx asm mov ah,ds:[si] asm and ah,al asm not al asm and es:[di],al asm not al asm or es:[di],ah dx ´Â ½ºÅ©·Ñ¿¡¼­ÀÇ Source,bx ´Â ½ºÅ©·Ñ¿¡¼­ÀÇ Destination À» °¡¸®Å°°í ÀÖÀ¾´Ï´Ù. Áï bx->dx ·ÎÀÇ Àü¼ÛÀ̵ǰÚÁÒ. À§ÀÇ ¿¹ Á¦ÀÇ °æ¿ì bx=y ÁÂÇ¥ 5,dx=y ÁÂÇ¥ 6 ÀÇ °æ¿ìÀÔ´Ï´Ù. ¹°·Ð ½ÇÁ¦ ·Î´Â x ÁÂÇ¥¸¦ ´õÇØÁÖ¾î¾ß °ÚÁö¸¸¿ä.. ±×·³ ¹Ú½º Ä¥Çϱâ,¶óÀα׸®±â,½ºÅ©·ÑÀÇ ¾Ë°í¸®Áò ÀûÀÎ °ÍÀÎ ¸ð µÎ »ìÆ캸¾ÒÀ¾´Ï´Ù. ´ÙÀ½ °­Á¿¡´Â ÀÌ ¸ðµÎÀÇ ¼Ò½º¸¦ ½Æ°í ¼Ò ½ºÄڵ忡 ´ëÇÑ ¼³¸íÀ» Çϵµ·Ï ÇÏ°ÚÀ¾´Ï´Ù. ±×·³..Ç㸣¹Ì!