IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

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

> Запрос времени
18192123
сообщение 26.05.2008 21:31
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Здраствуйте.
Требуется вывести на экран системное время.
Запрос времени осуществляет функция

mov AH,2Ch
int 21h	



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

Теперь вопрос: а как содержимое этих регистров вывести на экран? Как я поняла, нужно сначала преобразовать в строку? Не пойму, как это сделать...Объясните пожалуста.

Сообщение отредактировано: 18192123 - 26.05.2008 21:36
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
мисс_граффити
сообщение 26.05.2008 23:30
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


смотри - вывод одного числа из ах:
;процедура вывода одного числа
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




--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 27.05.2008 1:20
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


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

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

большое спасибо!!)
теперь разобралась!

Сообщение отредактировано: 18192123 - 27.05.2008 15:48
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 20.07.2025 12:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"