Implementando um "relógio de parede" na memória RAM
Escreva uma subrotina clock que toma como entrada um apontador no par X
para uma área de memória com 6 bytes onde é mantido um contador de tempo em ASCII no formato
hhmmss ( horas minutos segundos), onde os bytes do contador conterão os
seguintes valores máximos (em ASCII): 23hs, 59 mins, 59 segs.
Inicialize contador com os valores ASCII correspondentes a 23hs, 59 mins, 01 segs,
ou seja, em hexadecimal: 3233, 3539, 3031. Cada chamada à subrotina deve somar 1
segundo ao contador e os seus dígitos devem ser atualizados de forma apropriada.
Depure a sua subrotina com o recurso de "Auto Step" do simulador, chamando-a, digamos, 16 vezes.
Sugestão: utilize o recurso
de endereçamento com pre-decrementação de X para varrer e atualizar os dígitos do contador
da "direita para a esquerda", ou seja, a partir do dígito menos significativo de segundos;
se escrita com cuidado sua subrotina conterá apenas 15
instruções.
A subrotina clock deverá também zerar o contador quando o mesmo atingir
o valor 24:00:00 hs passando-o imediatamente para 00:00:00 hs. Para este fim você precisa acrescentar
cerca de 10 instruções ao código sugerido (sugestão: escreva uma subrotina para este fim).