Atividade 1 -    Tirando um "auto-retrato do programa"

Faça duas versões (1.1 e 1.2, abaixo) de um programa que exibe no vídeo as suas próprias instruções no formato ascii-hexadecimal de acordo com as especificações abaixo. Verifique a correção do programa comparando a saída no vídeo com a do comando d do debug:

debug seuprograma.com

- d100 140

1.1 V. deve converter as instruções do programa para ascii-hexadecimal usando um vetor para armazenar o programa convertido. Dimensionar corretamente o vetor é uma dificuldade facilmente resolvida com ajuda do assembler: defina um rótulo, digamos, start antes da primeira instrução e outro, digamos, fim, imediatamente após a última instrução. O vetor pode então ser dimensionado pela diretiva:

prog:    resb 2*(fim-start)        ; cada byte do programa ocupará dois caracteres ascii !

V. precisará escrever uma pequena rotina para converter um inteiro de 4 bits em um caracter ascii-hexadecimal ('0'...'9', 'A'...'F').
Uma forma simples é usar esse inteiro como índice do vetor:

binascii: db    '0123456789ABCDEF'

Outra forma é observar que na sequencia de caracteres ASCII há 7 caracteres após o '9' (39h) e antes do 'A' (41h) e fazer as contas de acordo.

Para exibir o vetor convertido no vídeo use a função de saída de uma cadeia Ascii, do DOS, int 21h, ah=09.

Apresente uma impressão do programa montado (.lst)  no formato landscape para caber na página, junto com uma demonstração no laboratório. (Para ativar a criação dos arquivos .lst ative no nasmide sob Options >> assembler, Create listing file )

1.2 Nesta versão, o seu programa não pode usar nenhuma área de dados, enviando para a tela cada byte convertido, usando a função int 21h, ah=02,  do DOS, que exibe na tela um caracter ascii armazenado em dl.  V. deve usar, portanto,  o 2º método citado acima para converter um inteiro de 4 bits para ASCII.
Apresente uma impressão do programa montado (.lst)  no formato landscape para caber na página, junto com uma demonstração no laboratório.