Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ASM, int 21h 
:(
    Опции темы
Pavel
Дата 4.10.2002, 06:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











как число которое в шестнатсетиричной системе распечатать в деситичной
  Вверх
Chingachguk
Дата 4.10.2002, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Код

text segment byte
assume cs:text,ds:text
org 100h
begin:
; Пусть в ax будет число, которое надо вывести как десятичное
 mov  ax,0666
; Форматируем его, результат записываем в строку
 mov  cx,10000; Начальный делитель
 mov  di,offset DecNum; Адрес приемника
 cld  ; Флаг направления для команды stosb
@@GetDec:
 xor  dx,dx
 div  cx; dx:ax / cx -> ax, остаток в dx
 add  al,'0'; Приводим к ASCII
 stosb; Записываем в выходную строку
 push dx; Запоминаем остаток
 xor  dx,dx
 mov  ax,cx
 mov  cx,10
 div  cx  ; Делим делитель на 10
 mov  cx,ax
 pop  ax; Вспоминаем делимое
 test cx,cx; Делитель стал равен 0 ?
 jnz  @@GetDec
; Выводим результат
 mov  ah,09h
 mov  dx,offset DecNum
 int  21h
 ret
DecNum db '?????',13,10,'$'
text ends
end begin



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Pinny
  Дата 5.10.2002, 00:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо за помощь.
Кстати я тут вчера сам тоже допетрил как ето сделать. Я просто решил сделать это для многоразового пользования и сделать macro и вот что у меня получилось:


OutNum macro  Scr
local   next, out_chr
push    ax
push    bx
push    cx
push    dx
mov     ax,Scr
mov     bx,10
mov     cx,0
next:
mov     dx,0
div     bx
push    dx
inc     cx
cmp     ax,0
jne     next
mov     ax,0200h
out_chr:
pop     dx
add     dl,'0'
int     21h
loop    out_chr
pop     dx
pop     cx
pop     bx
pop     ax
     endm


Потом в коде просто пишешь

OutNum <число>

и готово!  


P.S.  For integers only...
:D
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0675 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.