Помощь - Поиск - Пользователи - Календарь
Полная версия: Запрос времени
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
18192123
Здраствуйте.
Требуется вывести на экран системное время.
Запрос времени осуществляет функция

mov AH,2Ch
int 21h



Тогда в следующие регистры попадёт инормация о времени: ; CH - час, CL - мин, DH - сек, DL - 1/100 сек

Теперь вопрос: а как содержимое этих регистров вывести на экран? Как я поняла, нужно сначала преобразовать в строку? Не пойму, как это сделать...Объясните пожалуста.
мисс_граффити
смотри - вывод одного числа из ах:
;процедура вывода одного числа
wywod proc near
push ax
push cx
push dx
; Поделим это число на десять. Остаток - правая цифра -
; получится в AL, частное в AH.
aam
; Запомним младшую цифру, перейдём к частному.
mov cl, al
mov al, ah
; Его тоже поделим на десять. В AL получим вторую цифру,
; в AH - частное от деления исходного числа на 100.
; А это старшая цифра, ведь в один байт помещаются
; максимум трёхзначные числа.
aam
mov ch, al
mov dl, ah
; Итак, теперь цифры числа хранятся в DL, CH, CL.
; Приступим к выводу. Заготовим номер функции.
mov ah, 02h
; Переведём все цифры в символы.
add dl, 30h
add cx, 3030h
; Теперь попытаемся избежать вывода незначащих нулей.
; Если старшая цифра не ноль, начинаем вывод с неё.
cmp dl, 30h
jnz short ob1
; Если ноль, то проверяем вторую цифру.
cmp ch, 30h
jnz short ob2
; Если она тоже ноль, то выведем только младшую,
; даже если и она ноль.
jmp short ob3
ob1: int 21h
ob2: mov dl, ch
int 21h
ob3: mov dl, cl
int 21h
pop dx
pop cx
pop ax
ret
wywod endp


18192123
Цитата(мисс_граффити @ 27.05.2008 0:30) *

смотри - вывод одного числа из ах:

большое спасибо!!)
теперь разобралась!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.