Я пишу конвертер чисел между системами нумерации (b h d), программа принимает 16 бит двоичного числа или 4 цифры шестнадцатеричного кода. или 5 десятичных знаков.Чтение 5-значного десятичного числа в сборке x86
процедура чтения я написал, кажется, есть проблема, когда десятичное значение превышает 65535 (FFFFh), поскольку им дело с 16-битовыми регистрами и наклоняет содержат большие значения
я был бы признателен, если бы вы мне помочь.
вот моя процедура чтения:
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
Благодаря Nataly
Ну, что вы хотите сделать? Вы хотите использовать 32-разрядное хранилище или хотите определить и отклонить значения> 65535? –
Я также хочу преобразовать числа> 65535, я попробовал расширенные регистры, но я не мог их хорошо управлять. – Nataly