Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.98 KB | None | 0 0
  1. void imageprocess::illuminateLUT(uchar * tablaLUT, uchar gW)
  2. {
  3.     asm volatile(
  4.         "\n\t"
  5.  
  6.         "mov %0, %%esi\n\t"
  7.  
  8.         "mov $0, %%edi\n\t"
  9.         "EFor:\n\t"
  10.             "cmp %1, %%edi\n\t"
  11.             "jge IFFor\n\t"
  12.             "mov %%edi, %%ebx\n\t"
  13.             "mov $255, %%eax\n\t"
  14.             "imul %%ebx, %%eax\n\t"
  15.             "mov %1, %%ebx\n\t"
  16.             "cltd\n\t"
  17.             "div %%ebx\n\t" //EAX entre lo que haya en EBX.
  18.             "movb %%al, (%%esi, %%edi)\n\t"
  19.             "inc %%edi\n\t"
  20.             "jmp EFor\n\t"
  21.  
  22.         "IFFor:\n\t"
  23.         "mov %1, %%ecx\n\t"
  24.         "FFor:\n\t"
  25.             "cmp $256, %%ecx\n\t"
  26.             "jge FinalILUT\n\t"
  27.             "mov $255, %%eax\n\t"
  28.             "movb $255, (%%esi, %%ecx)\n\t"
  29.             "inc %%ecx\n\t"
  30.             "jmp FFor\n\t"
  31.  
  32.         "FinalILUT:\n\t"
  33.  
  34.         :
  35.         : "m" (tablaLUT), "m" (gW)
  36.         : "%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory"
  37.     );
  38.  
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement