DV3-Info
Start-Spanish
Assembler y DV3
Downloads!
Mailing-List!
Thanks to...
Links!
Ensamblador y el DV3

Capítulo 3

Necesitaremos la impresión del listado en assembler del capitulo 2 para continuar examinando el archivo NPLv111.bin :
Las cosas se nos ponen interesantes en la dirección 820122h. Esta dirección contiene el comando SCALL 82h: 1094.
Esto significa, que la ejecución del programa continua en la dirección 821094h. Una subrutina se inicia allí, la cual inicializará el controlador del LCD.
La subrutina finaliza con el comando SRET y retorna al programa principal en la dirección que esta después del comando SCALL mencionado.
En la dirección 82013Ah un comando MOV mueve el valor 007Eh al registro 2. El próximo comando mueve el valor 0082h (valor del segmento !!!) al registro 3. Lo que significa que R2 y R3 contienen la dirección de la primera cadena de texto de salida!
Cada cadena de salida termina con el valor 00h (compara el área de texto 82007Eh al 8200E2h) ! En consecuencia comprenderemos que mirando en la dirección 820158h podremos ver el valor de la dirección de la segunda cadena de salida...
Que sucede debajo?
El comando PUSH en las direcciones 820142h y 820144h transfiere el valor de R3 y R2 a la pila, un área de almacenamiento definida para valores de registro.
En la dirección 820146h el valor 001Eh es movido a R2 y después colocado en la pila. Este valor define la línea de la pantalla LCD donde la cadena de salida será posicionada !
En la dirección 82014Ch otro valor es movido al R2. Esto define la columna donde la cadena de salida sera posicionada !
Finalmente en la dirección 82014Eh, SCALL 82h:1EE0h llama a otra subrutina, la cual envía la cadena de salida a la pantalla LCD !
Las próximas líneas son todas impresas siguiendo el mismo modelo.

Experimentos :

1. Prueba modificar ligeramente los valores de la línea (1Eh =30dez; 28h =40dez; B0h =50dez) para la cadena de salida con el editor hexa en el archivo NPLv111.bin.
Renombra el archivo modificado a Test2.bin y transfiérelo al DV3.
Mira los resultados ! Cual es el valor máximo para alcanzar la ultima línea de la pantalla LCD ?

2. Intenta modificar de la misma forma los valores de las columnas para la cadena de salida.

Precaución: Como podemos ver en el listado en assembler, el comando MOV para definir el valor de las columnas es estructurado de la siguiente manera:

    C9 23 -> MOV R2, 03h -> C9 = MOV; 2 = R2; 3 = 03h

Con que problema nos encontramos por consiguiente, si queremos redefinir una columna ?

3. Usa el desensamblador para verificar las modificaciones que has hecho con el editor hexa. Efectivamente siempre deberías chequear el archivo BIN modificado con el desensamblador antes de transferirlo al DV3 para evitar efectos indeseados !

    Resultados :
    Los resultados seran discutidos en el proximo capítulo !

[DV3-Info] [Start-Deutsch] [Ergebnisse] [Start-Englisch] [Results]