· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Gcc Option Force Mem

GccOptionForceMemÀÔ´Ï´Ù.

-fforce-mem


»çÄ¢¿¬»ê(µ¡¼À, »¬¼À, °ö¼À, ³ª´°¼À)À» Çϱâ Àü¿¡, ¸Þ¸ð¸® operand¸¦ ¸ÕÀú register·Î ºÒ·¯¿É´Ï´Ù. ¾Æ½Ã´Ù½ÃÇÇ, ¸Þ¸ð¸®¿¡¼­ °ªÀ» Àд °ÍÀº ·¹Áö½ºÅÍ¿¡¼­ Àд °Íº¸´Ù ´À¸³´Ï´Ù. ¿¬»êÀ» ¼öÇàÇϱâ Àü¿¡, ¸Þ¸ð¸®¿¡ ÀúÀåµÇ¾î ÀÖ´Â °ªÀ» ·¹Áö½ºÅÍ·Î ºÒ·¯¿Í¼­ ÀÛ¾÷À» ¼öÇàÇϱ⠶§¹®¿¡, ¸Þ¸ð¸®¿¡ ÀÖ´Â °ª¿¡ ¸¹Àº ¿¬»êÀ» ÇÒ °æ¿ì, ÀÌ ¿É¼ÇÀ» ¾²¸é ¼Óµµ Çâ»óÀ» ±â´ëÇÒ ¼ö ÀÖ½À´Ï´Ù:

int global_int;

void
bar(int a, int b)
{
  global_int = a + b;
}

À§ ¼Ò½º¸¦ x86 ½Ã½ºÅÛ¿¡¼­ gcc·Î ÄÄÆÄÀÏÇÏ¸é ´ÙÀ½°ú °°Àº ¾î¼Àºí Ãâ·ÂÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù:

; **** void
; **** bar(int a, int b)
; **** {
        pushl   %ebp
        movl    %esp, %ebp
; ****   global_int = a + b
        movl    12(%ebp). %eax
        addl    8(%ebp), %eax
        movl    %eax, global_int
; **** }
        popl    %ebp
        ret

¾Æ·¡ ¼Ò½º´Â ¶È°°Àº C ¼Ò½º¸¦ -fforce-mem ¿É¼ÇÀ» ½á¼­ ¾î¼ÀºíÇÑ °ÍÀÔ´Ï´Ù (À§ÀÇ ¾î¼Àºí ¸®½ºÆ®¿Í ºñ±³Çغ¸½Ã±â ¹Ù¶ø´Ï´Ù. ƯÈ÷ µ¡¼ÀÀ» ¼öÇàÇÏ´Â ºÎºÐÀÎ 'addl' ¸í·É ºÎºÐÀ» Àß º¸±â ¹Ù¶ø´Ï´Ù):

; **** void
; **** bar(int a, int b)
; **** {
        pushl   %ebp
        movl    %esp, %ebp
; ****   global_int = a + b;
        movl    8(%ebp), %eax
        movl    12(%ebp), %edx
        addl    %edx, %eax
        movl    %eax, global_int
; **** }
        popl    %ebp
        ret

-fforce-mem ¿É¼ÇÀ» ¾´ °æ¿ì, EBP°¡ °¡¸®Å°´Â ¸Þ¸ð¸®¿¡ Á÷Á¢ ´õÇÏ´Â ¹æ½ÄÀ» ¾²Áö ¾Ê°í, ÀÏ´Ü ¸ÕÀú ¸Þ¸ð¸®¿¡ ÀÖ´Â °ªÀÎ 8(%ebp)¸¦ EAX ·¹Áö½ºÅÍ¿¡ ºÒ·¯¿Â ´ÙÀ½¿¡ µ¡¼ÀÀ» ÇÏ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.



ID
Password
Join
"Heck, I'm having a hard time imagining the DOM as civilized!" -- Fred L. Drake, Jr.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-04-05 23:52:57
Processing time 0.0042 sec