Здраствуйте. Требуется вывести на экран системное время. Запрос времени осуществляет функция
mov AH,2Ch int 21h
Тогда в следующие регистры попадёт инормация о времени: ; CH - час, CL - мин, DH - сек, DL - 1/100 сек
Теперь вопрос: а как содержимое этих регистров вывести на экран? Как я поняла, нужно сначала преобразовать в строку? Не пойму, как это сделать...Объясните пожалуста.
мисс_граффити
27.05.2008 3:30
смотри - вывод одного числа из ах:
;процедура вывода одного числа 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 5:20
Цитата(мисс_граффити @ 27.05.2008 0:30)
смотри - вывод одного числа из ах:
большое спасибо!!) теперь разобралась!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.