Понедельник
29-04-2024
09:26
Главная страница
Каталог статей
Информист Приветствую Вас Гость | RSS
Регистрация
Вход
Меню сайта

Категории каталога
Delphi [3]
C++ [5]
Java [28]
программирование на Java
Assembler [4]
Алгоритмы на ассме
C# [1]
Eclipse [1]

Наш опрос
Насколько вам понравился этот сайт
Всего ответов: 545

Копилка
Если вам понравился наш сайт или вы нашли полезную информацию, то у вас есть возможность отблагодарить администрацию.

Начало » Статьи » Programming » Assembler

Перевод числа в строку
функция 02 из прерывания 21h выводит только один символ.
Если тебе надо выводить длинное число, то тебе надо написать функцию перевода из числа в строку.

Вот например такая функция:
Принимает число на AX. Результирующую строку возвращает в массив 
temp DB 11 DUP(?)
который сегменте данных

IntToStr proc
 push cx
 push dx
 push di
 push ax
 mov cx,10
lea SI,temp
FILL_BUF_:
 mov byte ptr [si],' '
 inc si
 LOOP FILL_BUF_
 mov [si+1],'$'
 mov di,10
 or ax,ax
 jns CLR_DVD_
 neg ax
CLR_DVD_:
 xor dx,dx
 div di
 add dx,'0'
 dec si
 mov byte ptr [si],dl
 inc cx
 or ax,ax
 jnz CLR_DVD_
 
 pop ax
 or ax,ax
 jns NOMORE_
 dec si
 mov byte ptr [si],'-'
 inc cx
NOMORE_:
 pop di
 pop dx
 pop cx
 ret
IntToStr endp

А потом выводи получившуюся строку 9_ой функцией int 21h



Источник: http://www.cyberforum.ru/assembler/thread16463.html
Категория: Assembler | Добавил: Judge (24-02-2009) | Автор: Otaka
Просмотров: 4844 | Рейтинг: 1.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск по каталогу
Яндекс


Поиск по Информисту

Наша кнопка


Друзья сайта

Статистика


Copyright MyCorp © 2006Сайт создан в системе uCoz