David 11 سال پیش
والد
کامیت
571e304b0b
1فایلهای تغییر یافته به همراه9 افزوده شده و 8 حذف شده
  1. 9 8
      filtros/blur_asm.asm

+ 9 - 8
filtros/blur_asm.asm

@@ -98,9 +98,9 @@ blur_asm:
 	mov filas_faltan, radius
 	shl filas_faltan, 1
 	inc filas_faltan ; 2r+1 filas
+
 	mov tmp_src, src ;salvo para avanzar despues
 	pxor xmm10,xmm10
-	mov matriz, r15 ;voy al inicio de la matriz
 	.loopInterno: ;matriz convulsion
 		mov col_faltan, radius
 		shl col_faltan, 1
@@ -173,17 +173,17 @@ blur_asm:
 			cmp col_faltan, 0 ;termine
 			jle .finFilaInterna
 
-			cmp col_faltan, 4*PIXEL_SIZE ;me faltan entre 0 y 4 pixeles, retrocedo suficiente para que me falten 4 exactos
+			cmp col_faltan, 4*PIXEL_SIZE ;me faltan entre 1 y 3 pixeles, retrocedo suficiente para que me falten 4 exactos
 			jle .retroceder
 
-    		add src, PIXEL_SIZE*4      ; Incremento 4 pixeles
+			add src, 	PIXEL_SIZE*4      ; Incremento 4 pixeles
 			add matriz, PIXEL_SIZE*4   ; me faltan al menos 4 pixeles en esta fila 
 			jmp .loopFila
 
 		.retroceder:
-			mov basura, PIXEL_SIZE*4 ;cargo 4 pixeles por tanda
-			sub basura, col_faltan
-			sub src, basura
+			mov basura, PIXEL_SIZE*4;cargo 4 pixeles por tanda
+			sub basura, col_faltan	;resto los que me faltan (1-3)
+			sub src, basura			;retrocedo(1-3) para que me falten 4
 			sub matriz, basura
 			jmp .loopFila
 			
@@ -200,8 +200,9 @@ blur_asm:
 	pshufb xmm10, xmm11	 ;dejo 0000,0000,0000,rgba
 	movd [dst], xmm10    ; Escribo en el destino
 .endLoop:
-	mov src, tmp_src
-    add src, PIXEL_SIZE      ; Incremento 1 pixel
+	mov src, tmp_src 	;recupero la posicion a procesar
+	mov matriz, r15 	;voy al inicio de la matriz
+    add src, PIXEL_SIZE	; Incremento 1 pixel
     add dst, PIXEL_SIZE
     add cont_c, PIXEL_SIZE
     jmp .loop