Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 4

часы,звук

12.06.2011, 20:57. Показов 4359. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте

лабороторная работа, нужно сделать вывод реального времени на экран со звуком(типа чтобы каждую секунду или минуту пищал динамик)
Дело в том, что в ассемблере я полный ноль
но нашел прогу, которая выводит время
но не знаю как сделать пищание динамика
помогите пожалуйста
вот текст программы
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
OutStr macro str ;макрос вывода строки
push dx
mov ah,09h
lea dx,str
int 21h
pop dx
endm 
;----------------------------------------
OutChar macro char ;макрос вывода символа
push ax
push dx
mov ah,06h
mov dl,char
add dl,30h
int 21h
pop dx
pop ax
endm
;----------------------------------------------------------------------------------------------------
Decomposition macro time ;макрос разложения двузначного числа (16-ного) на цифры и вывода их на экран
push bx
mov bh,time ;используется bx
mov bl,time
and bh,11110000b
shr bh,4h
and bl,00001111b
OutChar bh
OutChar bl
pop bx
endm
;-------------------------------------
Delay macro time ;макрос задежки в мкс
local ext,iter
push cx
mov cx,time
ext:
push cx
mov cx,5000
iter:
loop iter
pop cx
loop ext
pop cx
endm
;-----------------------------------------------------------
GotoXY macro x,y ;макрос установки позиции курсора в т.(x,y)
push ax
push bx
push dx
mov ah,02 ;Запрос на установку курсора
mov bh,0 ;Экран 0
mov dh,11 ;Строка 0
mov dl,25 ;Столбец 0
int 10h ;Передача управления в BIOS
pop dx
pop bx
pop ax
endm
;-----------------------------------------------
 
.model small
.stack 100h
.data
M1 DB ':$'
M2 DB 'Current time....$'
M3 DB '',10,13,'$'
 
.code
start:
mov ax,@DATA ;инициализация
mov ds,ax
 
l1:
GotoXY 11,25
OutStr M2
xor ax,ax
mov ah,2h ;получение времени
int 1Ah
Decomposition ch ;ch - часы
OutStr M1
Decomposition cl ;cl - минуты
OutStr M1
Decomposition dh ;dh - секунды
OutStr M3
 
mov ah,01h ;проверка буфера клавиатуры
int 16h ;флаг нуля zf=0 если была нажата клавиша
jnz exit
 
Delay 10000
jmp l1
 
 
exit:
mov ax,4C00h
int 21h
END start
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2011, 20:57
Ответы с готовыми решениями:

Периферия, Часы реального времени
Здравствуйте. Мне нужно реализовать задержку с помощmю часов реального времени на минуты/секунды. К примеру я выполняя следующий кусок кода...

Часы вторым каналом таймера
Надо запилить часы с помощью второго канала системного таймера, именно второго, не используя нулевой, с его перерыванием. Где то на...

Программа перевода секунд в часы, минуты, секунды
Написать программу на ассемблере,которая переводит вводимое кол-во секунд в часы,минуты и секунды!

6
 Аватар для Yri-kun
9 / 9 / 0
Регистрация: 26.09.2010
Сообщений: 16
12.06.2011, 21:58
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
120
121
122
123
124
125
126
127
128
129
OutStr macro str ;макрос вывода строки
push dx
mov ah,09h
lea dx,str
int 21h
pop dx
endm 
;----------------------------------------
OutChar macro char ;макрос вывода символа
push ax
push dx
mov ah,06h
mov dl,char
add dl,30h
int 21h
pop dx
pop ax
endm
;----------------------------------------------------------------------------------------------------
Decomposition macro time ;макрос разложения двузначного числа (16-ного) на цифры и вывода их на экран
push bx
mov bh,time ;используется bx
mov bl,time
and bh,11110000b
shr bh,4h
and bl,00001111b
OutChar bh
OutChar bl
pop bx
endm
;-------------------------------------
Delay macro time ;макрос задежки в мкс
local ext,iter
push cx
mov cx,time
ext:
push cx
mov cx,5000
iter:
loop iter
pop cx
loop ext
pop cx
endm
;-----------------------------------------------------------
GotoXY macro x,y ;макрос установки позиции курсора в т.(x,y)
push ax
push bx
push dx
mov ah,02 ;Запрос на установку курсора
mov bh,0 ;Экран 0
mov dh,11 ;Строка 0
mov dl,25 ;Столбец 0
int 10h ;Передача управления в BIOS
pop dx
pop bx
pop ax
endm
;-----------------------------------------------
 
.model small
.stack 100h
.data
M1 DB ':$'
M2 DB 'Current time....$'
M3 DB '',10,13,'$'
 
.code
start:
mov ax,@DATA ;инициализация
mov ds,ax
 
mov ah,0 
mov al,2 
int 10h 
 
l1:
GotoXY 11,25
OutStr M2
xor ax,ax
mov ah,2h ;получение времени
int 1Ah
Decomposition ch ;ch - часы
OutStr M1
Decomposition cl ;cl - минуты
OutStr M1
Decomposition dh ;dh - секунды
OutStr M3
 
 
 
mov ah,01h ;проверка буфера клавиатуры
int 16h ;флаг нуля zf=0 если была нажата клавиша
jnz exit
 
 
mov al, 10110110b
out 43h, al
mov al, 2ah
out 42h, al
mov al, 4h
out  42h, al
in al, 61h
or  al, 00000011b
out 61h, al
        
mov bx,2
xor ah, ah
int 1ah
add  dx, bx
mov bx, dx
_m1:
int 1ah
cmp dx, bx
jb _m1
        
in al, 61h
and al, 11111100b
out 61h, al
 
 
Delay 500
jmp l1
 
 
exit:
mov ax,4C00h
int 21h
END start
2
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 4
13.06.2011, 07:59  [ТС]
Большое спасибо
уже что-то есть, но только он пищит непрерывно, то есть за секунду раз 5 пикает
а мне надо, чтобы пищал, например, раз в минуту или секунду
не подскажите как это сделать?
0
 Аватар для Yri-kun
9 / 9 / 0
Регистрация: 26.09.2010
Сообщений: 16
13.06.2011, 14:03
У меня пикает раз в секунду.
Поэкспериментируйте с этими величинами:
108: mov bx,2
123: Delay 500
Поизменяв их, вы добьетесь нужной частоты пипиканья.
1
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 4
13.06.2011, 17:10  [ТС]
Спасибо
все получилось
изменил строчку в макросе mov cx,50000
Delay 10000
и еще можно попросить закомментить подпрограмму звука, если, конечно, не трудно
а то не очень понимаю как работает
а разобраться надо
0
 Аватар для Yri-kun
9 / 9 / 0
Регистрация: 26.09.2010
Сообщений: 16
13.06.2011, 17:25
Добавил комментарии к фрагменту со звуком.
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
120
121
122
123
124
125
126
127
128
129
OutStr macro str ;макрос вывода строки
push dx
mov ah,09h
lea dx,str
int 21h
pop dx
endm 
;----------------------------------------
OutChar macro char ;макрос вывода символа
push ax
push dx
mov ah,06h
mov dl,char
add dl,30h
int 21h
pop dx
pop ax
endm
;----------------------------------------------------------------------------------------------------
Decomposition macro time ;макрос разложения двузначного числа (16-ного) на цифры и вывода их на экран
push bx
mov bh,time ;используется bx
mov bl,time
and bh,11110000b
shr bh,4h
and bl,00001111b
OutChar bh
OutChar bl
pop bx
endm
;-------------------------------------
Delay macro time ;макрос задежки в мкс
local ext,iter
push cx
mov cx,time
ext:
push cx
mov cx,5000
iter:
loop iter
pop cx
loop ext
pop cx
endm
;-----------------------------------------------------------
GotoXY macro x,y ;макрос установки позиции курсора в т.(x,y)
push ax
push bx
push dx
mov ah,02 ;Запрос на установку курсора
mov bh,0 ;Экран 0
mov dh,11 ;Строка 0
mov dl,25 ;Столбец 0
int 10h ;Передача управления в BIOS
pop dx
pop bx
pop ax
endm
;-----------------------------------------------
 
.model small
.stack 100h
.data
M1 DB ':$'
M2 DB 'Current time....$'
M3 DB '',10,13,'$'
 
.code
start:
mov ax,@DATA ;инициализация
mov ds,ax
 
mov ah,0 
mov al,2 
int 10h 
 
l1:
GotoXY 11,25
OutStr M2
xor ax,ax
mov ah,2h ;получение времени
int 1Ah
Decomposition ch ;ch - часы
OutStr M1
Decomposition cl ;cl - минуты
OutStr M1
Decomposition dh ;dh - секунды
OutStr M3
 
 
 
mov ah,01h ;проверка буфера клавиатуры
int 16h ;флаг нуля zf=0 если была нажата клавиша
jnz exit
 
 
mov al, 10110110b              ; канал 2, режим 3
out 43h, al
mov al, 2ah         ; сохраняем младший байт частоты
out 42h, al
mov al, 4h          ; сохраняем старший байт частоты
out  42h, al        
in al, 61h          ; текущее состояние порта 61h в AL
or  al, 00000011b              ; установления битов для разрешения работы динамика и включение его
out 61h, al         ; включаем динамик
                
mov bx,2            ; длительность пика
xor ah, ah
int 1ah             ; получение текущего времени
add  dx, bx         ; добовляем к нему длину пика
mov bx, dx          ; и сохранием
_m1:
int 1ah             ; снова получаем время
cmp dx, bx          ; и сравниваем прошло ли нужное время, если нет, циклимся снова
jb _m1
                
in al, 61h
and al, 11111100b              ; обнуляем биты
out 61h, al         ; выключаем динамик
 
 
Delay 500
jmp l1
 
 
exit:
mov ax,4C00h
int 21h
END start
2
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 4
13.06.2011, 18:11  [ТС]
Еще раз спасибо! очень помогли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2011, 18:11
Помогаю со студенческими работами здесь

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

анимация+звук
Вот идейка одна появилась, но толком не знаю, как ее воплотить в жизнь. И по этому - следуещие вопросы: 1)Как на ассме сделать...

звук сирены
Нужно написать ехе-программу моделирующую звук сирены, которая прерывается нажатием на любую клавишу в графическом режиме с очищением...

не чистый звук
сделала нотами сирену, зациклила, но почему то не идет чистый звук, не просто 2 ноты, а есть посторонние...как это исправить? ...

Время и звук
Здарвствуйте, форумчане! Есть пара вопросов по данной программе: Программа выводит текущее время и вызывает звуки из системного...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru