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

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

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

 
 Ответить  Открыть новую тему 
> Запрос времени
сообщение
Сообщение #1


Профи
****

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

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


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

mov AH,2Ch
int 21h



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

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

Сообщение отредактировано: 18192123 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

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

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


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

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

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

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

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

 





- Текстовая версия 23.11.2020 23:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name