Guest User

Untitled

a guest
Jun 19th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. void imageprocess::girarIzquierda(uchar * imgO, uchar * imgD) {
  2.  
  3. asm volatile(
  4.  
  5. "movl %0, %%esi \n\t"
  6. "movl %1, %%edi \n\t"
  7. "movl $-120,%%eax \n\t" //Indice del primer bucle.
  8.  
  9. "BuclePrimero:"
  10.  
  11. "movl $160,%%ecx \n\t"
  12. "addl $-40*320, %%ecx \n\t" //%ECX es mi postpixel, tiene -40*320 +160
  13. "movl %%eax, %%edx \n\t"
  14. "subl %%ecx, %edx \n\t"
  15. "movl %%edx, %%ecx \n\t"
  16.  
  17.  
  18. "movl $-160,%%ebx \n\t" //INdice del segundo bucle
  19. "BucleSegundo:"
  20.  
  21. //Inicio If
  22. "cmpl $0, %%ecx \n\t"
  23. "jl Else \n\t"
  24. "cmp $320*240, %%ecx \n\t"
  25. "jge Else \n\t"
  26.  
  27. "movb (%%ecx,%%esi),%%dl \n\t"
  28. "movb %%dl,(%%edi) \n\t"
  29. "jmp If \n\t"
  30.  
  31. "Else:"
  32. "movb $0,(%%edi) \n\t"
  33.  
  34. "If:"
  35. "incl %%edi \n\t"
  36. "addl $320,%%ecx \n\t"
  37.  
  38. //Incremento del 2 indice
  39. "incl %%ebx \n\t"
  40.  
  41. "cmpl $160, %%ebx \n\t"
  42. "jl BucleSegundo \n\t"
  43.  
  44. //Incremeno del 1 indice
  45. "incl %%eax \n\t"
  46. "cmpl $120, %%eax \n\t"
  47. "jl BuclePrimero \n\t"
  48.  
  49.  
  50. "\n\t"
  51. :
  52. : "m" (imgO), "m" (imgD)
  53. :"%eax", "%ebx", "%ecx", "%edx", "%edi", "%esi", "memory"
  54.  
  55. );
  56.  
  57. }
Add Comment
Please, Sign In to add comment