Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. int main()
  7. {
  8.     const int N = 1000;
  9.     char str1[N];
  10.     char str2[N];
  11.     char* fmt = "%s";
  12.     __asm {
  13.         //AGAIN :
  14.         mov     eax, N
  15.         push    eax
  16.         lea     eax, str1
  17.         push    eax
  18.         call    dword ptr gets_s
  19.         add     esp, 8
  20.        
  21.         mov     eax, N
  22.         push    eax
  23.         lea     eax, str2
  24.         push    eax
  25.         call    dword ptr gets_s
  26.         add     esp, 8
  27.  
  28.         lea     edi,str1
  29.         xor     eax,eax
  30.         cld
  31.         mov     ecx,0xFFFFFFFF
  32.         repne   scasb
  33.         neg     ecx
  34.         mov     ebx,ecx
  35.  
  36.         lea     edi, str2
  37.         xor     eax, eax
  38.         cld
  39.         mov     ecx, 0xFFFFFFFF
  40.         repne   scasb
  41.         neg     ecx
  42.  
  43.         cmp     ebx,ecx
  44.         jge     NEXT
  45.         push    ecx
  46.         call    dword ptr malloc
  47.         add     esp, 4
  48.         jmp     NEXT1
  49.         NEXT:
  50.             push    ebx
  51.             call    dword ptr malloc  
  52.             add     esp, 4
  53.         NEXT1:
  54.  
  55. //адрес начала нового массива в eax
  56.         mov     edi,eax
  57.         lea     ebx,str1
  58.         lea     edx,str2
  59.         xor     ecx,ecx     //длина получившегося массива
  60.         CYCLE :
  61.             inc     ebx
  62.             cmp     byte ptr [ebx],0
  63.             je      FIN
  64.             mov     al,[ebx]
  65.             CYCLE2 :                   
  66.                 inc     edx
  67.                 cmp     byte ptr [edx],0
  68.                 je      CYCLE
  69.                 cmp     al,[edx]
  70.                 je      FOUND
  71.             jmp     CYCLE2
  72.         jmp     CYCLE
  73.         FOUND :
  74.             mov     [eax+ecx],al
  75.             inc     ecx
  76.             jmp     CYCLE
  77.         FIN :
  78.                 push    edi
  79.                 lea     ebx,fmt
  80.                 push    ebx
  81.                 call    dword ptr printf
  82.        
  83.         //спросить  про ещё раз
  84.     }
  85.     return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement