question

Programa para converter o numero hexadecimal para BCD em codigo assembly?

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.
resposta Resposta
Para resolver o seu problema, é necessário criar um programa em código assembly que atenda aos seguintes requisitos: introduzir um número de 4 dígitos em hexadecimal, converter o valor de entrada para BCD e exibir o resultado na tela.

Primeiramente, você pode usar um código assembly similar ao que você já encontrou, mas fazer algumas alterações para garantir que o programa realize o loop de entrada e saída de loop.

Você pode começar definindo a estrutura do programa, incluindo o segmento de dados e o segmento de código. Em seguida, você pode utilizar as instruções de entrada e saída, como MOV e INT, para ler o número hexadecimal de 4 dígitos, converter para BCD e exibir o resultado na tela.

Para o loop de entrada, você pode utilizar instruções de comparação, como CMP, e instruções de salto condicional, como JNZ, para verificar se o usuário deseja inserir outro número hexadecimal. Caso afirmativo, o programa deve retornar ao início do loop de entrada.

Por exemplo, você pode utilizar uma estrutura semelhante a um loop while para garantir que o usuário tenha a opção de inserir outro número ou encerrar o programa. Você pode definir uma variável de controle para indicar se o loop deve continuar ou não, e utilizar instruções de comparação e salto condicional para verificar a condição do loop.

Para o loop de saída, você pode utilizar instruções de comparação e salto condicional para verificar se o usuário deseja exibir o resultado na tela ou encerrar o programa. Por exemplo, você pode exibir uma mensagem para o usuário perguntando se ele deseja ver o resultado e aguardar a entrada do usuário, e usar instruções de comparação e salto condicional para tomar a ação apropriada.

Por fim, após implementar o loop de entrada e saída de loop, você pode testar o programa para garantir que ele atenda aos requisitos e funcione como esperado. Se necessário, você pode fazer ajustes e melhorias para garantir que o programa esteja completo e funcional.

Espero que essas sugestões sejam úteis para você desenvolver um programa em código assembly que converta o número hexadecimal para BCD e atenda aos requisitos especificados. Boa sorte!

ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta



Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved