Atividade 2 (obrigatória): analisador de comandos e dump hexadecimal de memória
Escreva um programa para analisar linhas de comando semelhantes ao comando d nnnn
do debug do DOS:
V. deve ler uma linha do teclado através da função ah=0ah, int 21h, do DOS
(ver tutorial do Brian Howard). A linha pode ter um de dois formatos:
d xyzw
ou,
q
satisfazendo:
- Zero ou mais brancos são permitidos entre d e x, e após w.
- xyzw devem ser caracteres ascii-hexadecimal ('0'..'9', 'A'...'F' ou 'a'...'f'),
representando um endereço de 16 bits, (caso contrário V. deve mostrar uma mensagem de erro).
- V. deve converter uma seqüencia válida xyzw para um número binário de 16 bits
e mostrar no vídeo uma linha contendo a representação ascii-hexadecimal de 16 bytes de memória
a partir do endereço digitado, de forma semelhante à do comando d do debug.
Seu programa deve conter um laço onde cada linha é ecoada no vídeo
seguida de uma de duas mensagens:
xyzw:"Comando OK" quando um comando válido
é digitado ou "Comando inválido" quando o comando contém um erro,
e terminar quando uma linha contendo o único caracter q for digitada.
O exemplo seguinte mostra a saída no vídeo de uma possivel execução do programa:
d 0100
0100 BA 25 01 B4 09 CD 21 BB-45A 01 BE 25 01 8A 07 86
dab99
ab99 AA FF AB CD EF 00 21 34-56 78 9A BC DE EF FO FF
d 123g
Comando inválido
d 123456h
Comando inválido
q
(prompt do Dos)
Obs: V. deve submeter uma listagem do seu programa montado no formato
.lst e fazer uma apresentação no laboratório com o turbo debugger.