Консультация № 14189
04.11.2004, 00:07
0.00 руб.
0 2 2
Допустим в регистре AX содержится результат арифметических операций (например число 2384 - целочисленное). Как вывести его на экран? Я знаю что нужно каждую цифру увеличить на 30h. Но как это сделеть на практике? Приведите листинг (если можно :-))

Обсуждение

давно
Советник
419
1012
04.11.2004, 00:07
общий
это ответ
Здравствуйте, Khanc!
читай Rusfaq Калайджана.
<h6><font color=#FF7F00>* EMan: -=- И легко перо, да на крышу не закинешь. =-= </font></h6>
Неизвестный
04.11.2004, 00:07
общий
это ответ
Доброе время суток, Khanc!
Пока число не кончится, делить его на 10 и выводить результат.

Приложение:
cseg segmentassume cs:cseg, ds:dseglocalsstart: mov ax,seg dseg mov ds,ax mov ax,2384 call showax mov ah,4ch int 21hshowax proc mov si,offset numend;конец - потому-что числа будут идти в обратном поярдке mov bx,10;делитель числа@@showchar: xor dx,dx;Подготовка к делению div bx;остаток деления в dx (он меньше 10, поэтому помещается в dl) or dl,30h;переводим в читаемый вид dec si;запоминаем цифру mov [si],dl cmp ax,0;если число не кончилось идем назад ja @@showchar ;печатаем число mov dx,si mov ah,9 int 21h ret endpendsdseg segment number db " " numend db "$"endsend start
Форма ответа