RSC II
Escrevendo Nomes
Além disso, vamos aproveitar para ver uma ferramenta bastante útil na depuração de um programa em Assembly: o simulador do RSCII.
Digite o programa a seguir (ou da figura lado).
|
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||
Obs: foram utilizadas algumas macros do RSC II para introduzir o nome na memória logo após o programa. Macros:
| |||||||||||||||||||||||||
Divisão do código e string na memória:Código: C000 10 ORG &HC000 004D 20 WRTVRM: EQU &H4D C000 210000 30 LD HL,0 C003 0112C0 40 LD BC,NOME C006 0A 50 LOOP: LD A,(BC) C007 CD4D00 60 CALL WRTVRM C00A 23 70 INC HL C00B 03 80 INC BC C00C F600 90 OR 0 C00E C206C0 100 JP NZ,LOOP C011 C9 110 RET String: C012 4D617263 120 NOME: DEFM "Marcelo" C019 00 130 DEFB 0 | |||||||||||||||||||||||||
Após assemblar o programa (EN), vamos ao BASIC para rodá-lo. Digite:
DEFUSR=&HC000:X=USR(0)O programa também poderá ser executado dentro do simulador RSCII através do comando PR <end>. No caso desse programa, seria: PR &HC000Porem, após executar um programa, o RSCII sempre limpa a tela. Assim, não seria possível visualizar o nome escrito ali, pois ele seria imediatamente apagado. |
|||||||||||||||||||||||||
O programa na figura ao lado é uma variação do programa anterior, no qual escreve o nome na tela 50 vezes (registrador D determina o número de repetições). | |||||||||||||||||||||||||
Depurando com o simulador do RSCII. O Assembly é uma linguagem difícil de ser programada, e necessita de um bom depurador para acompanhar o desempenho do programa. O RSCII fornece uma excelente ferramenta de depuração, que é o simulador. O simulador é chamado através do comando SI, seguido do endereço inicial do programa. No caso do nosso programa, teremos que digitar: SI &HC000Em seguida, escolha a opção H (hexadecimal). |
|||||||||||||||||||||||||
Observando a figura ao lado, o simulador mostra:
|
|||||||||||||||||||||||||
Área de memória. Para os registradores A (em cima) e A' (embaixo), destacados em amarelo, aparece o caractere correspondente ao código ASCII do valor de cada registrador. Na imagem ao lado, o caractere correspondente ao código ASCII &H4D ou 77 é a letra "M". Para os pares de registradores BC, DE, HL, IX e IY, cada coluna representa uma área de memória apontada pelo par correspondente. As colunas estão destacadas em verde. A pilha, destacada em azul claro, contém o dez últimos dados depositados na pilha (SP). Exemplo de funcionamento: Inicio Empilha valor 1234 Empilha valor ABCD 0000 1234 ABCD 0000 0000 1234 0000 0000 0000 ... ... ... |
|||||||||||||||||||||||||
Você poderá executar o programa passo a passo e verificar as mudanças que acontecem nos registradores e na memória. Assim, poderá verificar se cada instrução usada está funcionando de acordo com o desejado. Principais comandos do simulador do RSCII:
|
|||||||||||||||||||||||||
Principais comandos do simulador do RSCII (continuação):
No próximo capítulo, será apresentado o passo a passo de um programa em LM no simulador. Para sair do simulador, tecle CONTROL + STOP. |
|||||||||||||||||||||||||
O comando VM (visualizar memória) do RSCII permite apresentar um determinado conteúdo de memória. A sintaxe é:
VM <end_inicial>-<end_final>O comando apresentado na figura ao lado, permite visualizar tanto o programa, como a string na memória. O conteúdo apresentado está configurado da seguinte maneira: Endereço | Valor em hexa | Código ASCIIObs: Para cada linha, temos 8 posições de memória. Para o nosso programa exemplo, o comando é: VM &HC000-&HC019 |
<< Anterior | RSC II | Próxima >> |