From 268512c3f2c67bb72f0dab45b8112313fd585e2c Mon Sep 17 00:00:00 2001 From: JulianCamacho Date: Thu, 17 Nov 2022 00:44:11 -0600 Subject: =?UTF-8?q?Modifica=20versi=C3=B3n=20de=20not=20ahora=20con=20mask?= =?UTF-8?q?=20de=20unos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/descifrador.s | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'app') diff --git a/app/descifrador.s b/app/descifrador.s index 72dafdb..bb10e87 100644 --- a/app/descifrador.s +++ b/app/descifrador.s @@ -27,39 +27,38 @@ idle: bne idle @ Verificar el algoritmo seleccionado - - lsr r9, r6, #1 @ Obtener la llave - mov r0, r9, lsl #8 @ Mover llave para no afectar alpha - orr r0, r0, r9, lsl #16 @ Replicar la llave en el siguiente byte - orr r0, r0, r9, lsl #24 @ Replicar la llave en el siguiente byte - - and r6, r6, #1 @ Bit mask para seleccionar el primer bit de los switches - cmp r6, #1 @ Si el valor es 1, se salta a not, si es 0 a xor + and r10, r6, #1 @ Bit mask para seleccionar el primer bit de los switches + cmp r10, #1 @ Si el valor es 1, se salta a not, si es 0 a xor beq not - cmp r6, #0 + cmp r10, #0 beq xor @ Recorrer la memoria desde START y hacer not al valor en cada posicion @ y volverlo a guardar not: - ldr r4, [r1] @ Guarda en r4 el dato en la posición de memoria de start - mvn r4, r4 @ Guarda en r4 el valor de r4 negado - str r4, [r1] @ Vuelve a guardar en memoria ya modificado - add r1, r1, #4 @ Incrementa el valor de r4, para ir al siguiente pixel - add r7, r7, #1 @ Incrementa contador de tamaño de la imagen - cmp r7, r8 @ Compara contador con tamaño de la imagen 640 * 480 - bne not - b halt + @Procesar la mask + mov r9, #0b11111111 @Hacer mask de 1s + mov r0, r9, lsl #8 + orr r0, r0, r9, lsl #16 + orr r0, r0, r9, lsl #24 + b loop xor: +@Procesar la llave + lsr r9, r6, #1 + mov r0, r9, lsl #8 + orr r0, r0, r9, lsl #16 + orr r0, r0, r9, lsl #24 + +loop: ldr r4, [r1] @ Guarda en r4 el dato en la posición de memoria de start eor r4, r4, r0 @ Hace XOR entre r4 y 46 - str r4, [r4] @ Vuelve a guardar en memoria ya modificado + str r4, [r1] @ Vuelve a guardar en memoria ya modificado add r1, r1, #4 @ Incrementa el valor de r4, para ir al siguiente pixel add r7, r7, #1 @ Incrementa contador de tamaño de la imagen cmp r7, r8 @ Compara contador con tamaño de la imagen 640 * 480 - bne xor + bne loop b halt halt: -- cgit v1.2.3