Advertisement
kreteda

Untitled

Oct 31st, 2014
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. void main()
  4. {
  5. char s[] = "Abaaaaaddaaafg"; //char *s = "Abcdefg";
  6. short int y;
  7. asm volatile(
  8. ".intel_syntax noprefix;"
  9. "mov ebx,%1;"
  10. "mov cx, 0;" // zerowanie zmiennej w której bdmy trzymac wynik
  11. "petla:"
  12. "mov al, [ebx];"
  13. "sub al, 0;" // sprawdzamy czy jest na końcu
  14. "jz koniec;" // jeżeli nie jest to koniec taka pętla
  15. "cmp al,97;" // sprawdzamy czy jest mala literka(a) w kodzie ascii
  16. "jnz skocz;" // to wykonujemy jeżeli prawda
  17. "inc cx;" // zwiekszamy o jeden cx
  18. "skocz: " // koniec ifa
  19.  
  20. "inc ebx;" /// int do pętli
  21. "jmp petla;"
  22. "koniec:"
  23.  
  24. "mov ecx,%1;"
  25. "mov [ecx],dl;"
  26. "mov edx,1;"
  27. "mov eax,1;"
  28. "int 0x80;"
  29.  
  30.  
  31. "mov %0, cx;"
  32. ".att_syntax prefix;"
  33. : "=r" (y)
  34. : "r" (s)
  35. : "ebx", "cx", "al"
  36.  
  37.  
  38.  
  39. );
  40.  
  41. //printf("y=%d", y);
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement