J'écris un convertisseur numérique entre les systèmes de numérotation (b h d), le programme accepte un nombre binaire de 16 bits, ou 4 chiffres hexadécimal. ou 5 décimales.Lecture du nombre décimal à 5 chiffres dans l'assemblage x86
la procédure de lecture je l'ai écrit semble avoir un problème lorsque la valeur décimale est supérieure à 65535 (FFFFh) depuis im traitant des registres 16 bits et il ne peut pas contenir des valeurs plus élevées
Je vous serais reconnaissant si vous me aider.
Voici ma procédure de lecture:
Proc R
mov ah,01;read first digit
int 21h
mov saveal,al
cmp al,0dh; if it is a new line break then dont read
jz toret
mov al,radex ; the radex value already entered by user
mov ah,0
mul dx
mov dx,ax; multiplies the radex by the number entered so far to shift it 1 dig.
mov al,saveal
cmp al,65
jge big2
sub al,30h; taking decimal value of the character
cont2:
call checkerror
mov ah,0
add dx,ax; adding the digit to the number read so far
loop R
toret:
ret
endp
Merci Nataly
Eh bien, que voulez-vous faire? Voulez-vous utiliser le stockage 32 bits ou souhaitez-vous identifier et rejeter les valeurs> 65535? –
Je veux aussi convertir les nombres> 65535, j'ai essayé les registres étendus mais je n'ai pas pu les gérer correctement. – Nataly