Specifications
MICROPROCESSADORES
EXEMPLOS E EXECRCÍCIOS
6
Luís Miguel Charrua Figueiredo 6 - 3 E.N.I.D.H.
Exemplo 5
Este programa mostra no ecran um número binário através de um ciclo condicional (LOOP) usando
a rotação do byte.
-a100
297D:0100 MOV AH,02 ;Função 2 (escreve um caractere no ecran)
297D:0102 MOV CX,0008 ;Põe o valor 0008 no registrador CX
297D:0105 MOV DL,00 ;Põe o valor 00 no registo DL
297D:0107 RCL BL,1 ;Roda o byte em BL um bit para a esquerda
297D:0109 ADC DL,30 ;Converte o registo de flag para 1
297D:010C INT 21 ;Chama interrupção do DOS
297D:010E LOOP 0105 ;Salta se CX > 0 para o endereço 0105
297D:0110 INT 20 ;Finaliza o programa
Exemplo 6
Este programa imprime um valor zero em dígitos hexadecimais.
-a100
297D:0100 MOV AH,02 ;Função 2 (escreve um caractere no ecran)
297D:0102 MOV DL,BL ;Põe o valor de BL em DL
297D:0104 ADD DL,30 ;Adiciona o valor 30 a DL
297D:0107 CMP DL,3A ;Compara o valor 3A com o conteúdo de DL
;sem afectá-lo, o seu valor apenas modifica o
;estado do flag de carry
297D:010A JL 010F ;salta ao endereço 010f, se for menor
297D:010C ADD DL,07 ;Adiciona o valor 07 a DL
297D:010F INT 21 ;Chama interrupção do DOS
297D:0111 INT 20 ;Finaliza o programa
Exemplo 7
Este programa é usado para imprimir dois dígitos hexadecimais.
-a100
297D:0100 MOV AH,02 ;Função 2 (escreve um caractere no ecran)
297D:0102 MOV DL,BL ;Põe o valor de BL em DL
297D:0104 AND DL,0F ;Transporta fazendo AND dos números bit a bit
297D:0107 ADD DL,30 ;Adiciona 30 a Dl
297D:010A CMP DL,3A ;Compara Dl com 3A
297D:010D JL 0112 ;Salta ao endereço 0112, se menor
297D:010F ADD DL,07 ;Adiciona 07 a DL










