Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Вывод содержимого регистров.


Автор: Qixing 16.4.2008, 06:07
Учусь програмировать на ассамблере.
Делаю задачу про Систменый таймер.
После использовании функции прерывания.ЗНачения времени помещаются в регистры.
И я например хочу вывести время на экран HH:MM:SS
Как вывести содержимое регистров на экран ,например в com программе.
Пробывал вторую функцию и шестую.Но на экране пусто.Помогите пожалкйста.

Автор: JAPH 16.4.2008, 18:23
Как "пробывали"?

Автор: Qixing 17.4.2008, 05:56
masm
.model tiny
.code
org 100h
start:    
mov ah,6
mov bx,1
mov dl,al ;в регистр данных помещаем тот регистр который хотим вывести.
int 21h
end  start


Предложите ваши варианты.


Автор: Severyanin 17.4.2008, 09:48
для начала, время нужно достаь из регистров и сделать десятичную коррекцию. потом - через прерывание 10h вывести посимвольно с разделителем ":". Вот и все. Почитай Абеля. или любую книгу по ассемблеру

Автор: Qixing 17.4.2008, 12:18
Хм.
Десятичная коррекция это понятно.
А вот  "потом - через прерывание 10h вывести "
Конкретнее.ПРимер.
Допустим у нас в регистре cx-какое то значение.

Автор: HackVan 22.5.2008, 15:30
Попробуй вот это  smile 

Код

; Процедура вывода числа.
; Входной параметр пердаеться в ax
outp proc
        push    ax
        push    cx
        push    dx
        push    bx
        xor     cx,cx    ;Количество цифр
        mov     bx,000Ah ;Основание системы счисления, в которой выводим число
 cont:  xor     dx,dx
        div     bx       ;Получаем крайнюю справа цифру
        push    dx       ;Запоминаем
        inc     cx
        or      ax,ax    ;Если получили не все цифры, продолжаем
        jnz     cont
    ;Итак, сохранились все цифры, справа налево.
    ;Сохраняли в стэке => цифры будут извлекаться слева направо, что и требуется при выводе
        mov     ah,02h   ;Функция вывода символа
 next:  pop     dx       ;Восстанавливаем цифру
        add     dl,30h   ;Переводим её в символ
        int     21h      ;Выводим
        loop    next
        pop     bx
        pop     dx
        pop     cx
        pop     ax
        ret
outp endp

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)