Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
 Аватар для oOpss
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 14

Системный таймер. Вывести дату и время на экран на разных строках экрана

11.03.2010, 01:08. Показов 7207. Ответов 26
Метки нет (Все метки)

Вывести дату и время на экран на разных строках экрана.

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
.model small
.stack 128h
.data
    den db '  .','$';
    mes db '  .','$';
    year db '    ','$'
    hour db '  :','$';
    min db '  :','$';
    sek db '  ','$';
.code
begin:
    mov ax,@data;
    mov ds,ax;
    mov ah,2ah;
    int 21h;
    mov ah,04;
    int 1ah;
    push cx;
    mov bl,dl;
    mov cl,04h;
    shr bl,cl;
    add bl,30h;
    mov den,bl;
    and dl,0fh;
    add dl,30h;
    mov den+1,dl
    lea dx,den;
    mov ah,09h;
    int 21h;
    
    mov ah,04h;
    int 1ah;
    push cx;
    mov bl,dh;
    mov cl,04h;
    shr bl,cl;
    add bl,30h;
    mov mes,bl;
    and dh,0fh;
    add dh,30h;
    mov mes+1,dh;
    lea dx,mes;
    mov ah,09h;
    int 21h;
    
    mov ah,04h;
    int 1ah;
    push cx;
    mov bl,dl;
    mov cl,04h;
    shr bl,cl;
    add bl,30h;
    mov year,bl;
    and dl,0fh;
    add dl,30h;
    mov year+1,dl;
    lea dx,year;
    mov ah,09h;
    int 21h;    
    
    call nextline;
    mov ah,02h;
    int 21h;
    mov ah,02h;
    int 1ah;
    push cx;
    mov bl,dl;
    mov cl,04h;
    shr bl,cl;
    add bl,30h;
    mov hour,bl
    and dl,0fh;
    add dl,30h;
    mov hour+1,dl;
    lea dx,year;
    mov ah,09h;
    int 21h;
    
    mov ah,02h;
    int 1ah;
    push cx;
    mov bl,dl;
    mov cl,04h; 
    shr bl,cl;
    add bl,30h;
    mov min,bl;
    and dl,0fh; 
    add dl,30h;
    mov min+1,dl;
    lea dx,min;
    mov ah,09h;
    int 21h;
    
    mov ah,02h;
    int 1ah;
    push cx;
    mov bl,dl;
    mov cl,04h;
    shr bl,cl;
    add bl,30h;
    mov sek,bl;
    and dl,0fh; 
    add dl,30h;
    mov sek+1,dl;
    lea dx,sek;
    mov ah,09h;
    int 21h;
    nextline proc;
        mov dl,0ah;
        mov ah,02h;
        int 21h;
        mov dl,0dh;
        mov ah,02h;
        int 21h
    ret
    nextline endp;
    mov ah,4ch;
    int 21h;
end
Вотс.. сделал.. но дату выводит нормально, а время неправильно, посмотрите плиз, что не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2010, 01:08
Ответы с готовыми решениями:

Вывести на экран дату и время
Напишите программу которая: -выводит на экран (указать конкретное место, фон, цвет символов) текущую дату и время -организует работу...

Вывести на экран текущие дату и время
Составить программу, которая выводит на экран текущие дату и время, а также имена всех файлов с расширением .exe, дату и время их создания.

Вывести на экран текущие дату и время
1. Напишите программу на языке ассемблера, которая: 1. выводит на экран (указать конкретное место, фон, цвет символов) текущую дату и...

26
 Аватар для Kesh92
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 8
19.12.2010, 22:46
ребята после того как я это "откомпилил " он просто мне вывел значение секунд и притом 4 раза оно в строке повторились! если надо вывести дату то там можно бе цикла обойтись!!! а если и время то это блок

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
; Вывод на экран текущей даты и времени из RTC
.model small
.code
.186
org 100h
 
 mov cx,6
mov al, 07h
  out  70h,al ; послать AL в индексный порт CMOS
  in   al,71h ; прочитать данные
  push ax
  shr  al,4   ; выделить старшие четыре бита
  add  al,'0' ; добавить ASCII-код цифры 0
  int  29h    ; вывести на экран
  pop  ax
  and  al,0Fh ; выделить младшие четыре бита
  add  al,'0' ; добавить ASCII-код цифры 0
  int  29h    ; вывести на экран
  shr  ax,8
  int 29h
mov al, 08h
  out  70h,al ; послать AL в индексный порт CMOS
  in   al,71h ; прочитать данные
  push ax
  shr  al,4   ; выделить старшие четыре бита
  add  al,'0' ; добавить ASCII-код цифры 0
  int  29h    ; вывести на экран
  pop  ax
  and  al,0Fh ; выделить младшие четыре бита
  add  al,'0' ; добавить ASCII-код цифры 0
  int  29h    ; вывести на экран
  shr  ax,8
  int 29h
mov al, 09h
  out  70h,al ; послать AL в индексный порт CMOS
  in   al,71h ; прочитать данные
  push ax
  shr  al,4   ; выделить старшие четыре бита
  add  al,'0' ; добавить ASCII-код цифры 0
  int  29h    ; вывести на экран
  pop  ax
  and  al,0Fh ; выделить младшие четыре бита
  add  al,'0' ; добавить ASCII-код цифры 0
  int  29h    ; вывести на экран
  shr  ax,8
  int 29h
 xor ax,ax
int 16h
ret
 
end start
0
4195 / 1841 / 223
Регистрация: 06.10.2010
Сообщений: 4,127
20.12.2010, 17:49
Kesh92
Если ты компилил из поста №11, то там ошибка

вместо
Assembler
1
a db 7,'.',8,'.',9,'-',4,':',2,':',8,' '
должно быть
Assembler
1
a db 7,'.',8,'.',9,'-',4,':',2,':',0,' '
0
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 3
25.03.2011, 20:19
Спасибо за программу вывода времени на экран, была по ней курсовая, сдал на 4! Но... с условием доработки!
Вобщем нужно чтоб дата и время выводились на центр экрана и чтоб перед ними были подписи "Дата:" "Время:" еще фон должен быть другого цвета но это я сделал. Попытался сделать вывод даты и времени на центр, так дату вывело а время так и осталось слева. Где не правильно??? Как время на центр поставить?
Вот такой текст asm получился:
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
.model small
.stack 128h
.data
den db '  .';
mes db '  .';
year db '    ',0dh,0ah
hour db '  :';
min db '  :';
sek db '  ','$';
.code
 
BCD2ASCII macro reg,mem
mov ah,reg
mov al,ah
shr al,4
and ah,0fh
add ax,3030h
mov word ptr [mem],ax
endm
begin:
mov ax,@data;
mov ds,ax;
 
mov ax,0600h
mov bh,57
mov cx,0000h
mov dx,184fh
int 10h
 
xor ax,ax
mov ah,02
mov bx,00
mov dh,09
mov dl,29
int 10h
 
mov ah,04;
int 1ah;
 
BCD2ASCII dl,den
BCD2ASCII dh,mes
BCD2ASCII cl,year
 
mov ah,02;
int 1ah;
 
BCD2ASCII ch,hour
BCD2ASCII cl,min
BCD2ASCII dh,sek
 
lea dx,den;
mov ah,09h;
int 21h;
 
mov ah,0ah
int 21h
 
mov ah,4ch;
int 21h;
end begin
0
 Аватар для Vadimych
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
26.03.2011, 11:49
Вот,Night-Falcon, держи:
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 
.model tiny
.code
.286
org 100h
start:
mov ax,3
int 10h
push 0b800h
pop es
xor di,di
mov cx,2000
mov ax,3200h
rep stosw
push ds
pop es
@1:
lea si,buf
lea di,buf+6
mov ah,4
int 1ah
call proc_
mov cx,dx
mov fl,1
call proc_
add di,4
mov ah,2
int 1ah
call proc_
mov cl,dh
call proc1
push 0b800h
pop es
mov di,1840-len/2
mov ah,57h
mov cx,len
@@:
lodsb
stosw
cmp cx,len-15
je @f
loop @b
@@:
add di,290
@@:
lodsb
stosw
loop @b
push ds
pop es
mov fl,0
mov ah,0bh
int 21h
test al,al
jz @1
xor ax,ax
int 16h
ret
proc_:
xor ah,ah
mov al,ch
shl ax,4
shr al,4
or ax,3030h
ror ax,8
stosw
cmp fl,1
je @f
proc1:
xor ah,ah
mov al,cl
shl ax,4
shr al,4
or ax,3030h
ror ax,8
stosw
inc di
ret
@@:
inc di
jmp proc1
buf db 'date:        .  time:  :  :  '
len=$-buf-1 
fl db 0        
end start
0
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 3
26.03.2011, 13:52
Че то она у меня на всех почти собачках ошибки выдает. Строки:41,42,43,45,48,68,79.
У вас все норм было?
0
 Аватар для Vadimych
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
26.03.2011, 14:42
Чем и как компилируешь? Попробуй поменять имена меток. @f это ближайшая вперёд, @b - ближайшая назад. Вот в архиве исходник екзешника, exe и com файлы.
Вложения
Тип файла: rar 5.rar (914 байт, 23 просмотров)
1
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 3
26.03.2011, 15:11
exe работает. Спасибо.
Ну я с винды через volkov commander, наверн из-за этого и не компилит.
на учебе буду, попробую с доса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2011, 15:11

Измерить время между нажатиями клавиш (системный таймер)
Покажите как работать с таймеров. Помогите собрать программу. Нужно составить программу, которая определяет время между двумя...

Закодируйте алгоритм, чтобы исходные данные и результаты выводились в разных строках и в середине каждой строки экрана
Ребят, нужна помощь. Значения одинаковых подвыражений должны вычисляться только один раз. Для этого вводите вспомогательные...

Вывести несколько переменных в разных строках MessageBox
Добрый день! Написал небольшую программу, которая 5 раз с разными значениями переменных обсчитывает математический пример, в итоге...

Как три строковых переменных вывести на разных строках?
.... writeln(a); writeln(b); writeln(c); // a,b,c - строки

<% now %> Каким образом вывести дату в разных форматах ??
При вызове стандартной функции &lt;% now %&gt; сервер выдает дату следующего формата 3/3/2002 9:19:36 AM Каким образом вывести...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru