Курсовая работа: Перевод чисел из различных систем счисления
cmp eax, 7fffffffh; если eax больше 7fffffffh,
ja.errmax ; то переход к.errmax
mov ecx, oss; посылаем в ecx основание выходной системы
xor esi, esi; очищаем esi
point3:
xor edx, edx ; очищаем edx (остаток от деления)
div ecx ; делим eax на ecx
mov BYTE ptr str[esi], dl; пересылаем остаток от деления в массив str
inc esi ; инкрементируем esi
cmp eax, 0; если частное не равно нулю,
jne.point3; то переходим к.point3
mov edx, esi ; сохраняем esi (количество элементов нового массива в edx)
xor esi, esi ; очищаем esi
mov BYTE ptr [ebx], dl; сохраняем в память длинну массива
point4:
mov al, BYTE ptr str [edx-1]; сохраняем символ из str в al (начиная с конца)
mov BYTE ptr [ebx+esi+1], al ; сохраняем его в исходном массиве
dec edx ; уменьшаем edx на 1
inc esi ; увеличиваем esi на 1
cmp edx, 0 ; если edx не равен нулю
jne.point4 ; то переходим к.point4
mov dl, BYTE ptr [ebx]; копируем в dl длинну массива
mov edi, edx; копируем в edi длину массива
point5:
cmp BYTE ptr [ebx+edi], 9; если элемент массива больше 9
ja.point6; то переходим к.point6
add BYTE ptr [ebx+edi], 30h; иначе прибавляем 30h
jmp.point7; переходк.point7
point6: