Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

вывод десятичного числа в консоль

47K
04 мая 2010 года
9l.
33 / / 04.05.2010
Доброго времени суток. Я новичёк и тольно недавно начал осваивать TASM и у меня возникла следующая проблема. Мне необходимо напечатать в консоли число которое хранится в регистре dl. Подкинте идеи, куски кода =), заранее спасибо.
7
04 мая 2010 года
@pixo $oft
3.4K / / 20.09.2006
Ой,да идей масса!Как минимум,2 способа:или делить число на 10,записывая символы в строку,а потом вывести её в обратном порядке,или [COLOR="Gray"]а дальше пошёл бред…невыносимый бред,который я поспешно удалил[/COLOR]:)

Я так понял,что вы под DOS;тогда это вроде единственный вариант.А вот если б под Windows,то вариантов точно масса (=
47K
05 мая 2010 года
9l.
33 / / 04.05.2010
Спасибо за ответ (: и ещё вот разбили мы число на несколько цифр, следует ли при выводе в консоль добавлять к цифре '0' (видел в одном примере) если да то зачем?
24K
06 мая 2010 года
engel65536
50 / / 17.10.2007
Между 0 и '0' - огромная разница. Дело в том, что код '0' не 0 (все символы с 0 до 31 служебные), а, если я не ошибаюсь, 30h, коды всех следующих цифр идут подряд. Поэтому для вывода надо к числу прибавлять или '0', или 30h - что, впрочем, одно и тоже.
47K
11 мая 2010 года
9l.
33 / / 04.05.2010
Спасибо за ответы, всё получилось (: , попозже выложу исходник программы, может кому-нибудь пригодится (:
47K
13 мая 2010 года
9l.
33 / / 04.05.2010
Вот исходник, он выводит в консоль случайное число(ололо, тупо, но мне пойдёт (: )
Код:
MODEL TINY
STACK 256  
DATASEG

CODESEG    
start: 
    mov ax, @data      
    mov ds, ax
   
;получаем мс

    mov ah, 2Ch
    int 21h

;генерируем число

    xor ax, ax
    mov bx, 12345
    mov al, dl
    mul bx
    add ax, 54321
    mov bx, 32145
    xor dx, dx
    div bx
    mov ax, dx
   
    xor cx, cx

;подготавливает к печати десятичные числа
;заносит по одному в стек и считает в cx

dec:               
    inc cx          
    xor dx, dx
    mov bx, 10
    div bx
    push dx
    cmp ax, 0
    jne dec

;печатает из стека десятичные числа
;количество чисел в cx

print:         
    mov ah, 02h    
    xor dx, dx
    pop dx
    add dx, '0'
    int 21h
    loop print

;выход
   
quit:
    mov ah, 04Ch
    mov al, 0      
    int 21h
end start
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог