diff options
| author | JulianCamacho <jjulian.341@gmail.com> | 2022-11-17 00:44:11 -0600 |
|---|---|---|
| committer | JulianCamacho <jjulian.341@gmail.com> | 2022-11-17 00:44:19 -0600 |
| commit | 268512c3f2c67bb72f0dab45b8112313fd585e2c (patch) | |
| tree | b40cd7dabbeb498cfdbac6f94788a79c23414605 /app | |
| parent | 7f7a9d51c8159f2ca3bea8c26e703093cd4779d7 (diff) | |
Modifica versión de not ahora con mask de unos
Diffstat (limited to 'app')
| -rw-r--r-- | app/descifrador.s | 37 |
1 files changed, 18 insertions, 19 deletions
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: |
