1. Заголовок или название темы должно быть информативным 2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора. 5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM! 6. Проверяйте программы перед тем, как выложить их на форум!!
Здраствуйте. Требуется вывести на экран системное время. Запрос времени осуществляет функция
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
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!