Курсовая работа: Перевод чисел из различных систем счисления
mov eax, iss; копируем основание системы счисления в eax
cmp eax, 16; если основание системы счисления равно 16
je.hexver; то переход к.hexver
ver:
sub BYTE ptr [ebx+edi], 30h; вычитаем из элемента массива 30h
jb.errinput; если результат меньше 0, то переход к.errinput
cmp BYTE ptr [ebx+edi], al; если результат больше или равен основанию системы счисления
jae.errinput; то переход к.errinput
dec edi; декремент edi
cmp edi, 0; если edi не равен нулю
jmp.exitverinput; переход.exitverinput
hexver:
sub BYTE ptr [ebx+edi], 30h; вычитаем из элемента массива 30h
jb.errinput; если результат меньше 0, то переход к.errinput
cmp BYTE ptr [ebx+edi], 10; если результат меньше 10
jb.p2; то переход к.p2 (если символ в диапазоне 0..9)
sub BYTE ptr [ebx+edi], 7h; вычитаем из элемента массива 7h
cmp BYTE ptr [ebx+edi], 10; если результат меньше 10
jb.errinput; если результат меньше 10, то переход к.errinput
cmp BYTE ptr [ebx+edi], 10h; если результат меньше 10
sub BYTE ptr [ebx+edi], 20h; вычитаем из элемента массива 20h
jb.errinput; если результат меньше 0, то переход к.errinput
jb.p2; то переход к.p2 (если символ в диапазоне a..f)
jmp.errinput; иначе переход к.errinput
errinput:
mov flag, 3; присваеваем flag код ошибки 3
jmp.exitverinput; переход к.exitverinput
p2:
dec edi; декремент edi