29.10.2006, 18:22
общий
это ответ
Здравствуйте, Const!
Программа выводит в десятичном виде число в AX. Алгоритм можно приспособить для вывода в любой системе счисления.
Удачи!
Приложение:
cseg segment assume cs:cseg, ds:nothing, ss:ssegbegin: mov ax,0AF4Dh ;Тестовое число call outAX ;Вывод mov ah,08h ;Просмотр результатов до нажатия клавиши int 21h mov ax,4C00h ;Выход int 21houtAX proc near push ax push cx push dx push bx mov bx,10 ;Делитель - основание системы счисления xor cx,cx ;Сколько будет цифр@1: xor dx,dx ;Очистка старшей части делителя div bx ;Получаем остаток от деления на основание системы счисления, то есть последнюю цифру push dx ;Сохраняем её в стеке(порядок получения обратен порядку вывода) inc cx ;Одной цифрой больше or ax,ax ;Если делитель 0, то дальше получать цифры не надо jnz @1 mov ah,02h ;Функция вывода@2: pop dx ;Восстанавливаем цифры add dl,30h ;Преобразование из числа в символ int 21h ;Выводим цифру loop @2 pop bx pop dx pop cx pop ax retoutAX endpcseg endssseg segment stack db 400h dup (?)sseg ends end begin