Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void imageprocess::girarIzquierda(uchar * imgO, uchar * imgD) {
- asm volatile(
- "movl %0, %%esi \n\t"
- "movl %1, %%edi \n\t"
- "movl $-120,%%eax \n\t" //Indice del primer bucle.
- "BuclePrimero:"
- "movl $160,%%ecx \n\t"
- "addl $-40*320, %%ecx \n\t" //%ECX es mi postpixel, tiene -40*320 +160
- "movl %%eax, %%edx \n\t"
- "subl %%ecx, %edx \n\t"
- "movl %%edx, %%ecx \n\t"
- "movl $-160,%%ebx \n\t" //INdice del segundo bucle
- "BucleSegundo:"
- //Inicio If
- "cmpl $0, %%ecx \n\t"
- "jl Else \n\t"
- "cmp $320*240, %%ecx \n\t"
- "jge Else \n\t"
- "movb (%%ecx,%%esi),%%dl \n\t"
- "movb %%dl,(%%edi) \n\t"
- "jmp If \n\t"
- "Else:"
- "movb $0,(%%edi) \n\t"
- "If:"
- "incl %%edi \n\t"
- "addl $320,%%ecx \n\t"
- //Incremento del 2 indice
- "incl %%ebx \n\t"
- "cmpl $160, %%ebx \n\t"
- "jl BucleSegundo \n\t"
- //Incremeno del 1 indice
- "incl %%eax \n\t"
- "cmpl $120, %%eax \n\t"
- "jl BuclePrimero \n\t"
- "\n\t"
- :
- : "m" (imgO), "m" (imgD)
- :"%eax", "%ebx", "%ecx", "%edx", "%edi", "%esi", "memory"
- );
- }
Add Comment
Please, Sign In to add comment