ÇÁ·Î±×·¡¹Ö

 3200, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   k1990121
   http://¾øÀ½
   ¾î¼À°ü·Ã Áú¹®2

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6283 [º¹»ç]


#include <stdio.h>


int m_cmp(char* a, char* b)
{
        int cnta = 0;                                                // aÀDZæÀÌ
        int cntb = 0;                                                // bÀDZæÀÌ
        _asm
        {
                mov edi, a
L3:
                cmp [edi], 0x00
                je L1

                inc edi
                inc cnta
                jmp L3
        }
L1:
                printf("%d\n", cnta);
        _asm
        {
                mov edi, b
L4:
                cmp [edi], 0x00
                je L2

                inc edi
                inc cntb
                jmp L4
        }
L2:

                printf("%d\n", cntb);

                _asm
                {
                        mov eax,ctna            
                        cmp eax,cntb            // a¿Í bÀÇ ±æÀ̺ñ±³ Å«¼ö ¹Ýº¹

                        jae L5                 // a°¡ °°°Å³ª Ŭ °æ¿ì
                        
                        mov eax,cntb          // b°¡ Ŭ °æ¿ì eax¸¦ b·Î ¹Ù²Þ


L5:
                        mov edi, a
                        mov esi, b
                        
L9:
                        cmp eax,0x00           // ¹Ýº¹ Ƚ¼ö°¡ 0ÀÌ µÇ¸é
                        je L6
            
                        dec eax
                        
                        cmp [esi],[edi]
                        
        ¡Ú¡Ú¡Ú¡Ú¡Ú                ja L7
                        jb L8
                        je L9

                        


                }


L7:    return 1;
L8:           return -1;
L6:    return 0;
}


                

int main()
{
        char str1[10] = "Hello";                        // ¹®ÀÚ¿­ 1        
        char str2[10] = "He1lo";                        // ¹®ÀÚ¿­ 2
        char str3[10] = "Hpllo";                        // ¹®ÀÚ¿­ 3
        int a;                                                                // m_cmpÀÇ ¸®Åϰª
                                                                
        a = m_cmp(str1,str2);              // str1ÀÌ ´õ Ŭ °æ¿ì
        printf("%d\n", a);                                   // 1 ¸®ÅÏ

  


        return 0;
}


¡Ú 5°³ µÇÀÖ´Â ºÎºÐ¿¡¼­..¿À·ù°¡ ¹ß»ýÇϴµ¥...¶Ç ¹¹°¡ À߸øµÈ°ÇÁö ¸øÀâ°íÀÖ½À´Ï´Ù..

  Hit : 3866     Date : 2012/12/15 12:43



    
supershop ±× À§¿¡ ÀÖ´Â cmp [esi], [edi] °¡ ¹®Á¦³×¿ä.
memory¿Í memory »çÀÌÀÇ ¿¬»êÀº ÇÑ ¹ø¿¡ ÇÒ ¼ö ¾ø½À´Ï´Ù.
mov esi, [esi]
cmp esi, [edi]
½ÄÀ¸·Î ³ª´©¾î¾ß ÇÕ´Ï´Ù
2012/12/18