Atividade desafio 1

Depuração de programas .com via rotinas de interrupção "single step" e "breakpoint"

Esta atividade ้ opcional, estritamente individual, e substitui a prova. Deve ser entregue at้ o dia da prova

O objetivo desta atividade é escrever, instalar e testar  rotinas de interrupção "single step" (vetor 1) e "breakpoint" (vetor 3) para auxílo à depuração de  programas em assembler no formato .com de forma semelhante ao programa debug do dos.

Requisitos:


Dicas importantes:

  1. O bit T do registrador de estado (flags) deve ser ligado dentro de uma rotina de interrupção e ativará a interrupção 1 apenas no fim da execução da instrução que se segue à instrução IRET. Como não há uma instrução do 8086 para ligar o bit T, V. deve fazer o "ou" da constante 0100h com a palavra de estado (flags) armazenada na pilha pela interrupção. Portanto, após a instalação das duas rotinas de interrupção, V. iniciará a depuração da sua aplicação via "single step",  colocando a  instrução  "INT 1" imediatamente antes da parte a ser depurada.  A partir desse ponto as instruções subseqüentes serão executadas com  "single step" até V. digitar o caracter 'q'.

  2. Para desligar o bit T do registrador de estado, V. deve fazer o "and" da constante 0FEFFh com a palavra de estado armazenada na pilha, antes de sair da rotina de interrupção.
  3. Um "breakpoint" é instalado numa instrução de um  programa substituindo o 1º byte da instrução pelo byte 0CCH e salvando o byte original para execução posterior da instrução. A busca ("fetch") e execução pela CPU dessa instrução (0cch) gera uma interrupção 3. Como algumas instruções no 8086 possuem apenas um byte esta é uma forma conveniente de instalar breakpoints.
Obs: V. deve contatar o professor antes de se engajar nessa atividade para combinar o acompanhamento e avaliação da atividade!