DV3-Info
Start-Portuguese
Assembler e DV3
Downloads!
Mailing-List!
Thanks to...
Links!
Assembler e DV3

Capítulo 3

Abra o arquivo NPLv111.asm (feito no cap. 2 com o disassembler) para podermos continuarmos a examinar o arquivo NPLv111.bin :
As coisas estão começando a ficar interessantes para nós no endereço 820122h. Este endereço contêm o comando SCALL 82h:1094.
Isso significa que a execução do programa continua no endereço 821094h. Uma subrotina inicia-se aí, que irá inicializar o controlador LCD.
A subrotina termina com o comando SRET e retorna para o programa principal no endereço seguinte ao comando SCALL.
No endereço 82013Ah, o comando MOV, move o valor 007Eh para o registro 2. O próximo comando, move o valor 0082h (um segmento da memória !!) para o registro 3.
Isso significa que R2 e R3 contêm juntos o endereço da primeira variável de saída de texto !
Toda variável de saída termina com o valor 00h (compare a área de texto 82007Eh com 8200E2h) ! Contudo, podemos entender, que olhando para o endereço 820158h nos podemos ver o valor do endereço da segunda variável de saída...
O que acontece depois ?
O comando PUSH no endereço 820142h e 820144h tranfere os valores de R3 e R2 para a estaca (pilha), definindo a área onde será escrito os valores dos registros. No endereço 820146h o valor 001Eh é movido para R2 e depois puxado para a estaca (pilha). Este valor define a linha na tela LCD onde a variável de saída será posicionada !
No endereço 82014Ch outro valor é movido para R2. Isso define a coluna onde a variável de saída será posicionada - pixels !
Depois de todos esses endereços, 82014Eh Scall 82h:1EE0h chama outra subro- tina que manda a variável de saída para a tela LCD !
As próximas linhas são exibidas todas do mesmo modo.

Experimento :

1. Tente modificar ligeiramente os valores das linhas (1Eh=30dec; 28h=40dec;
B0h=50dec) para as variáveis de saída usando o Hexeditor.
Renomeie esses arquivos modificados para Test2.bin e baixe-o para o DV3.
Veja os resultados ! Qual é o máximo valor para a última linha da tela LCD ?

2. Tente modificar da mesma maneira os valores das coludas das variáveis de saída. Atenção: Como você pode ver, o comando MOV define o valor da   coluna que é estruturada da seguinte forma:

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

Qual problema encontramos à frente, se quisermos redefinir a coluna ?

3. Use o disassembler para verificar as modificações que você fez com o Hexeditor. De fato, você deverá sempre verificar as modificações feitas com o Hexeditor usando o disassembler antes de baixar o arquivo modificado para o DV3 !

    Resultados :
    Os resultados serão discutidos no próximo capítulo !

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