Para gravar um programa com os seguintes requisitos:
-introduzir o número de 4 dígitos em hexadecimal;
-valor de entrada deve ser convertido para BCD
-exibir o resultado na tela
por exemplo:
ENTRADA de número: xxxxH
RESULTADO: xxxxH = AAAA AAAA AAAA AAAA B
Achei isso:
entrada:
MOV ah, 00h
int 16 h
CMP ah, 1ch
saída de Je
número:
CMP al, '0'
entrada de JB
CMP al, '9'
ja em maiúsculas
al de sub, 30 h
processo de chamada
JMP entrada
letras maiúsculas:
CMP al, 'A'
entrada de JB
CMP al, 'F'
minúsculas ja
al de sub, h 37
processo de chamada
JMP entrada
minúsculas:
CMP al, 'a'
entrada de JB
CMP al, 'f'
entrada de ja
al de sub, h 57
processo de chamada
JMP entrada
entrada de loop
processo:
MOV ch, 4
MOV cl, 3
MOV bl, al
Converta:
MOV al, bl
ROR al, cl
e al, 01
Adicionar al, 30 h
MOV ah, 02h
MOV dl, al
int 21 h
dez cl
dez ch
JNZ converter
MOV dl, 20 h
int 21 h
RET
saída:
int 20 h
mas não exatamente como a minha condição, porque quando eu entro um número, ele é convertido imediatamente!
Como eu faço loop de entrada e saída de loop? Obrigado antecipadamente.