La lecture d'un numéro à l'aide d'INT 21h (DOS) & 8086 assmebly
J'ai besoin pour demander à l'utilisateur un message qui lui dit d'écrire un nombre , puis-je conserver ce numéro et de faire quelques opérations sur elle
Après avoir cherché en INT 21h j'ai trouvé ceci :
INT 21h /AH=1 - read character from standard input, with echo, result is stored in AL.
if there is no character in the keyboard buffer, the function waits until any key is pressed.
example:
mov ah, 1
int 21h
Le principal problème que ce ne lit un caractère et de la représenter comme ASCII
donc, Si j'ai besoin d'écrire le nombre "357"
Je vais le lire comme 3 , 5 , 7
et ce n'est pas mon but .
des idées ?
Si vous avez besoin de lire les trois personnages, vous devez mettre la lecture d'un caractère appel dans une boucle jusqu'à ce que vous avez les trois caractères que vous souhaitez.
J'ai besoin de lire le nombre entier comme "un tout", donc je peux faire par exemple plus sur elle ...etc
J'ai besoin de lire le nombre entier comme "un tout", donc je peux faire par exemple plus sur elle ...etc
OriginalL'auteur xsari3x | 2011-10-23
Vous devez vous connecter pour publier un commentaire.
Lorsque vous avez réussi à obtenir la saisie de l'utilisateur, placez le pointeur dans (ESI ESI = adresse de la chaîne)
OriginalL'auteur 龚元程
Une fois que vous avez la chaîne de caractères, vous devez la convertir en nombre. Le problème est, vous avez votre propre code de procédure pour le faire. C'est celle que j'utilise habituellement (écrit en C):
Voici l'explication. Tout d'abord,
*ptr-- - '0'
obtient la représentation entière d'un nombre (de sorte que'9' - '0' = 9
, puis il decremenstptr
de sorte qu'il pointe vers le précédent char. Une fois que nous savons que nombre, nous devons nous élever à une puissance de 10. Par exemple, supposons que l'entrée est '357', ce que fait le code est:Juste traduire le code de l'assemblée 😉 la partie La plus difficile est la fonction pow() qui vous avez le code par vous-même. Si vous voulez les nombres hexadécimaux, même si, vous pouvez le faire par un simple changement à gauche.
OriginalL'auteur BlackBear