blur2_4.asm 660 B

12345678910111213141516
  1. lea rsi, [r12 + r15 * PIXEL_SIZE] ; Origen: Primera fila no se procesa
  2. lea rdi, [rbx + r15 * PIXEL_SIZE] ; Destino: Primera fila no se procesa
  3. .ciclo:
  4. mov rcx, rdx ; Cargo el ancho -2 pixeles
  5. add rdi, PIXEL_SIZE ; Origen: Tengo que saltear el primer pixel
  6. add rsi, PIXEL_SIZE ; Destino: Tengo que saltear el primer pixel
  7. cld ; Flag de direccion (forward)
  8. rep movsd ; Repetime movsd
  9. inc rax ; Ya procese una fila, aumento
  10. add rdi, PIXEL_SIZE ; Salto ultimo pixel
  11. add rsi, PIXEL_SIZE
  12. cmp rax, r14
  13. jle .ciclo ; Mientras sea menor vuelvo al ciclo
  14. mov rdi, r12 ; Cargo parametro r12
  15. call free ; Libero la memoria