From 306cd98eba45d333d6b17716efbbe8f4a4c13685 Mon Sep 17 00:00:00 2001 From: JulianCamacho Date: Wed, 16 Nov 2022 18:05:54 -0600 Subject: =?UTF-8?q?A=C3=B1ade=20programa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/descifrador.s | 101 +++++++++++++++------ doc/block_diagram.drawio | 231 ++++++++++++++++++++++++++++++++--------------- 2 files changed, 232 insertions(+), 100 deletions(-) diff --git a/app/descifrador.s b/app/descifrador.s index 7335bde..ad9ff61 100644 --- a/app/descifrador.s +++ b/app/descifrador.s @@ -1,34 +1,81 @@ - mov r1, #0x100 ; r1 = 0x100 - mov r2, #0xCA ; r2 = 5 - mov r7, #0x0 ; r7 = 0 +.global reset +reset: -@Guardar en memoria 6 veces el valor del pixel: #0xCA -@ a partir de la posicion #0x100 -loop - str r2, [r1] ; - add r1, r1, #4 - add r7, r7, #1 - cmp r7, #6 - bne loop +.equ START_BUTTON, 0x30050000 @Cambiar a dirección de memoria del botón +.equ KEY_SWITCHES, 0x30060000 @Cambiar a dirección de memoria de los switches +@Copiar buffer a VRAM (?) + @ Esto es para guardar en memoria cada pixel + @ en este caso se guarda un valor de 0xCA por ejemplo desde la posicion 0x100 + @ dos veces, hasta la 0x104 por ejemplo + mov r1, #0x100 + mov r2, #0xCA + mov r7, #0x0 + +load: + str r2, [r1] + add r1, r1, #4 + add r7, r7, #1 + cmp r7, #2 + bne load + +@Esperar botón + ldr r2, =START_BUTTON + ldr r3, =KEY_SWITCHES + +@Prueba: poner botón de start en 1 + mov r9, #0x30050000 + mov r5, #1 + str r5, [r9] +@Prueba: poner switches en 1010 + mov r9, #0x30060000 + mov r5, #0b1011 + str r5, [r9] + +idle: + ldr r5, [r2] @Leer valor del botón + ldr r6, [r3] @Leer valores de los switches + cmp r5, #1 + beq start + b idle + + +start: + @Verificar el algoritmo seleccionado + ldr r6, [r3] + and r6, r6, #1 + cmp r6, #1 + beq not + cmp r6, #0 + beq xor + @Reiniciar contador y posicion de memoria - mov r1, #0x100 - mov r7, #0x0 + mov r1, #0x100 + mov r7, #0x0 @Recorrer la memoria desde #0x100 y hacer not al valor en cada posicion @ y volverlo a guardar -loop1 - ldr r3, [r1] - mvn r3, r3 - str r3, [r1] - add r1, r1, #4 - add r7, r7, #1 - cmp r7, #6 - bne loop1 - - -;e3a01c01 e3a020ca e3a07000 -;e5812000 e2811004 e2877001 e3570006 1afffffa -;e3a01c01 e3a07000 -;e5913000 ele03003 e5813000 e2811004 e2877001 e3570006 lafffff8 +not: + ldr r4, [r1] + mvn r4, r4 + str r4, [r1] @Se vuelve a guardar en memoria ya modificado + add r1, r1, #4 + add r7, r7, #1 + cmp r7, #1000 + bne not + b halt + +xor: + ldr r4, [r1] + ldr r6, [r3] + lsr r6, r6, #1 + eor r4, r4, r6 + str r4, [r4] @Se vuelve a guardar en memoria ya modificado + add r1, r1, #4 + add r7, r7, #1 + cmp r7, #1000 + bne xor + b halt +halt: + b halt \ No newline at end of file diff --git a/doc/block_diagram.drawio b/doc/block_diagram.drawio index 3ec4a9a..a8366a9 100644 --- a/doc/block_diagram.drawio +++ b/doc/block_diagram.drawio @@ -1,101 +1,186 @@ - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -104,57 +189,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -163,28 +248,28 @@ - + - + - + - + - + - + - + @@ -194,10 +279,10 @@ - + - + @@ -207,28 +292,28 @@ - + - + - + - + - + - + - + @@ -237,31 +322,31 @@ - + - + - + - + - + - + @@ -270,7 +355,7 @@ - + @@ -279,16 +364,16 @@ - + - + - + @@ -299,28 +384,28 @@ - + - + - + - + - + -- cgit v1.2.3