Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244

Вывод даты из CMOS

18.05.2016, 08:03. Показов 1422. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При выводе даты с помощью CMOS вместо первого нуля почему-то выводит q, как исправить, заранее благодарен

Код:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.186
.model small
.stack 100h
.data
Messd   db  "Current date:","$"
dt_ db  ?,?,'-',?,?,'-',?,?,?,?, 0Ah, 0Dh, "$"
 
.code
start:
    mov ax, @data
    mov ds, ax
    mov ax,3
    int 10h
    xor ax, ax  
    xor dx,dx
    mov dx, offset Messd
    call    showmess
    xor dx,dx
    call    getdate
    mov ah, 4Ch
    int 21h
 
showmess proc   
    mov ah,09h
    int 21h
    ret
showmess endp       
 
toasci proc
    ror ax, 4
    shr ah, 4
    or ax,'00'
    ret
toasci endp
    
 
getdate proc
    xor ax, ax
    mov ah, 04h
    int 1Ah
    mov al, dl
    call toasci
    mov word ptr dt_, ax
    xor ah, ah
    mov al, dh
    call toasci
    mov word ptr dt_+3, ax
    xor ah, ah
    mov al,ch
    call toasci
    mov word ptr dt_+6, ax
    xor ah, ah
    mov al, cl
    call toasci
    mov word ptr dt_+8, ax  
    mov dx, offset dt_
    call showmess
    ret
getdate endp
 
end start
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2016, 08:03
Ответы с готовыми решениями:

Вывод даты (дд.мм.гг)
вот наткнулся на код вывод текущей даты model tiny .186 .code org 100h begin: ;устанавливаем текстовый режим mov ax,3 ...

Вывод текущей даты
Всем привет! Есть классический вопрос - Вывод текущей даты. Есть программа которая выводит день недели, в таком же формате хотелась бы...

Вывод времени и даты
Вот имеется программа, какие нашел ошибки, исправил, и компилятор всё ещё ругается на две строчки, подскажите пожалуйста, в чем дело, а то...

8
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
18.05.2016, 09:01
Цитата Сообщение от Max00766 Посмотреть сообщение
При выводе даты с помощью CMOS вместо первого нуля почему-то выводит q, как исправить, заранее благодарен

Посмотрите на свой код.
Чем отличается первый вызов toasci от последующих?
0
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
18.05.2016, 09:05  [ТС]
Constantin Cat, Код не мой, найденный на просторах форума, отличается чем точно не могу сказать, так как пока еще не очень разбираюсь в ассемблере.
Возможно в этой строке
Assembler
1
 mov word ptr dt_, ax
Так как в последующих там приплюсовываются значения
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
18.05.2016, 09:16
Сравните эти два блока вызова toasci, чем они отличаются,
Assembler
1
2
3
    int 1Ah
    mov al, dl
    call toasci
Assembler
1
2
3
    xor ah, ah
    mov al,ch
    call toasci
0
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
18.05.2016, 15:52  [ТС]
Constantin Cat, Строками
Assembler
1
int 1Ah
Assembler
1
xor ah, ah
Исправить в первом случае тоже на:
Assembler
1
xor ah, ah
?

Добавлено через 28 минут
Constantin Cat, Пробовал заменять, выводятся нули и рандомные символы
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
18.05.2016, 16:03
Max00766,
Дело в том, что аккумулятор, это самый убиваеммый регистр, и нем может быть что угодно(кроме случаев, где что-то должно возвращается).
Все блоки вызова должны быть одинаковыми:
Assembler
1
2
3
    xor ah, ah
    mov al,ch
    call toasci
0
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
18.05.2016, 16:16  [ТС]
Constantin Cat, Сделал, но теперь выводит по нулям все:

Код:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.186
.model small
.stack 100h
.data
Messd   db  "Current date:","$"
dt_ db  ?,?,'-',?,?,'-',?,?,?,?, 0Ah, 0Dh, "$"
 
.code
start:
    mov ax, @data
    mov ds, ax
    mov ax,3
    int 10h
    xor ax, ax  
    xor dx,dx
    mov dx, offset Messd
    call    showmess
    xor dx,dx
    call    getdate
    mov ah, 4Ch
    int 21h
 
showmess proc   
    mov ah,09h
    int 21h
    ret
showmess endp       
 
toasci proc
    ror ax, 4
    shr ah, 4
    or ax,'00'
    ret
toasci endp
    
 
getdate proc
    xor ax, ax
    mov ah, 04h
    xor ah, ah
    mov al,ch
    call toasci
    mov word ptr dt_, ax
    xor ah, ah
    mov al,ch
    call toasci
    mov word ptr dt_+3, ax
    xor ah, ah
    mov al,ch
    call toasci
    mov word ptr dt_+6, ax
    xor ah, ah
    mov al,ch
    call toasci
    mov word ptr dt_+8, ax  
    mov dx, offset dt_
    call showmess
    ret
getdate endp
 
end start
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
18.05.2016, 16:26
Лучший ответ Сообщение было отмечено Max00766 как решение

Решение

Ну Вы и намутили, смысл был в том, что в первом случае не обнулялся ah.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.186
.model small
.stack 100h
.data
Messd   db  "Current date:","$"
dt_ db  ?,?,'-',?,?,'-',?,?,?,?, 0Ah, 0Dh, "$"
 
.code
start:
    mov ax, @data
    mov ds, ax
    mov ax,3
    int 10h
    xor ax, ax  
    xor dx,dx
    mov dx, offset Messd
    call    showmess
    xor dx,dx
    call    getdate
    mov ah, 4Ch
    int 21h
 
showmess proc   
    mov ah,09h
    int 21h
    ret
showmess endp       
 
toasci proc
    ror ax, 4
    shr ah, 4
    or ax,'00'
    ret
toasci endp
    
 
getdate proc
    xor ax, ax
    mov ah, 04h
    int 1Ah
    xor ah, ah
    mov al, dl
    call toasci
    mov word ptr dt_, ax
    xor ah, ah
    mov al, dh
    call toasci
    mov word ptr dt_+3, ax
    xor ah, ah
    mov al,ch
    call toasci
    mov word ptr dt_+6, ax
    xor ah, ah
    mov al, cl
    call toasci
    mov word ptr dt_+8, ax  
    mov dx, offset dt_
    call showmess
    ret
getdate endp
 
end start
1
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
18.05.2016, 17:12  [ТС]
Constantin Cat, Спасибо огромное, пытаюсь разобраться во всем этом как могу, просто изначально что-то ассемблер сложно пошел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2016, 17:12
Помогаю со студенческими работами здесь

Вывод системной даты и времени
Вывести системное время и дату Помогите пожалуйста исправить ошибки в программе код программы: format PE console entry start ...

ERROR CMOS datetime not set WARNING CMOS checksum bad
Доброе утро! Может ли быть такая ошибка из-за Windows 10?

keyboard/interface error, CMOS settings wrong, CMOS date/time Not Set
Не включался компьютор! Узнал, что надо перезапустить биос. Перезапустил с помощью перемычки. Запусти комп, нажатием кнопки на лиц....

Вывод даты из базы и подсчет строк где втстречаются эти даты
В таблице mysql есть поле где хранится дата. и это дата встречается в этой таблице по несколько раз. Как в PHP вывести каждую дату и рядом...

Надо дописать!Ассемблер вывод системной даты,времени и даты ближайшего воскресенья
вот исходный код .Model Small .486p .Stack 100h .Data wNumOff DW 10 Dup(0) ;Смещение строки, где будет содержаться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru