Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402

Ошибка в мелодии

21.04.2011, 17:32. Показов 1576. Ответов 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
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
buf dw 185, 247, 139, 147, 277, 494, 185, 247, 139, 147, 277, 494, 185, 247, 139, 147, 277, 494, 185, 220, 196, 185, 440, 392, 247, 165, 147, 165, 294, 277, 247, 247, 185, 555, 185, 185, 233, 139, 330, 294, 139, 147, 139, 988
buf1 dw 1,   1,   2,   2,   2,   1,   1,   1,   2,   2,   2,   1,   1,   1,   2,   2,   2,   1,   1,   1,   1,   1,    1,   1,  1,   2,   2,   2,   2,   2,   1,   1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   2,   1
.CODE
main: 
mov cx, 44
lea di, buf[0]
lea bx, buf1[0]  
 mov si,0    
            
a1: 
    cmp si,44
    je skip
          mov ax,[di] 
          call Sound   
          mov ax,[bx]    
          call Delay   
    inc si
    inc bx
    inc bx
    inc di
    inc di
loop a1
skip:
 
 
                call NoSound 
                mov ah,4Ch   
                int 21h      
Sound   proc
        mov dx,12h
        cmp ax,dx          
        jbe exit           
        xchg cx,ax         
        mov al,10110110b   
        out 43h,al         
        mov ax,34DDh       
        div cx             
        out 42h,al         
        mov al,ah
        out 42h,al         
        in  al,61h         
        or  al,11b         
        out 61h,al         
exit:   ret                
Sound   endp
NoSound proc
        in  al,61h         
        and al,not 11b     
        out 61h,al         
        ret                
NoSound endp
Delay   proc
        mov dx,0           
        mov cx,ax          
        mov ah,86h         
        int 15h            
        ret                
Delay   endp
END main
Прога, что работает правильно
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
.CODE
main:                        
      mov ax,185  
      call Sound   
      mov ax,1    
      call Delay   
mov ax,247
call Sound
mov ax,1
call Delay
mov ax,139
call Sound
mov ax,2
call Delay
mov ax,147
call Sound
mov ax,2
call Delay
mov ax,227
call Sound
mov ax,2
call Delay
mov ax,494
call Sound
mov ax,1
call Delay
mov ax,185
call Sound
mov ax,1
call Delay
mov ax,247
call Sound
mov ax,1
call Delay
mov ax,139
call Sound
mov ax,2
call Delay
mov ax,147
call Sound
mov ax,2
call Delay
mov ax,277
call Sound
mov ax,2
call Delay
mov ax,494
call Sound
mov ax,1
call Delay
mov ax,185
call Sound
mov ax,1
call Delay
mov ax,247
call Sound
mov ax,1
call Delay
mov ax,139
call Sound
mov ax,2
call Delay
mov ax,147
call Sound
mov ax,2
call Delay
mov ax,277
call Sound
mov ax,2
call Delay
mov ax,494
call Sound
mov ax,1
call Delay
mov ax,185
call Sound
mov ax,1
call Delay
mov ax,220
call Sound
mov ax,1
call Delay
mov ax,196
call Sound
mov ax,1
call Delay
mov ax,185
call Sound
mov ax,1
call Delay
mov ax,440
call Sound
mov ax,1
call Delay
mov ax,392
call Sound
mov ax,1
call Delay
mov ax,247
call Sound
mov ax,1
call Delay
mov ax,165
call Sound
mov ax,2
call Delay
mov ax,147
call Sound
mov ax,2
call Delay
mov ax,165
call Sound
mov ax,1
call Delay
mov ax,294
call Sound
mov ax,2
call Delay
mov ax,277
call Sound
mov ax,2
call Delay
mov ax,247
call Sound
mov ax,1
call Delay
mov ax,247
call Sound
mov ax,1
call Delay
mov ax,185
call Sound
mov ax,1
call Delay
mov ax,555
call Sound
mov ax,1
call Delay
mov ax,185
call Sound
mov ax,1
call Delay
mov ax,185
call Sound
mov ax,1
call Delay
mov ax,233
call Sound
mov ax,1
call Delay
mov ax,139
call Sound
mov ax,2
call Delay
mov ax,330
call Sound
mov ax,2
call Delay
mov ax,277
call Sound
mov ax,2
call Delay
mov ax,294
call Sound
mov ax,2
call Delay
mov ax,139
call Sound
mov ax,2
call Delay
mov ax,147
call Sound
mov ax,2
call Delay
mov ax,139
call Sound
mov ax,2
call Delay
mov ax,988
call Sound
mov ax,1
call Delay
                call NoSound 
                mov ah,4Ch   
                int 21h      
Sound   proc
        mov dx,12h
        cmp ax,dx          
        jbe exit           
        xchg cx,ax         
        mov al,10110110b   
        out 43h,al         
        mov ax,34DDh       
        div cx             
        out 42h,al         
        mov al,ah
        out 42h,al         
        in  al,61h         
        or  al,11b         
        out 61h,al         
exit:   ret                
Sound   endp
NoSound proc
        in  al,61h         
        and al,not 11b     
        out 61h,al         
        ret                
NoSound endp
Delay   proc
        mov dx,0           
        mov cx,ax          
        mov ah,86h         
        int 15h            
        ret                
Delay   endp
END main
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2011, 17:32
Ответы с готовыми решениями:

Ошибка воспроизведении мелодии для уведомления
Выбираю рингтон для уведомления из списка Intent soundIntent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); ...

Мелодии
напишите пожалуйста функцию, в которую будет передаваться 2 параметра: имя ноты и ее длительность. Внутри самой функции задать массив с...

Распознавание мелодии
Здравствуйте. У меня просьба помочь всем, кто может. Мне нужно в С# реализовать прогу наподобие Shazam. Принцип простой: на микрофон...

6
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
21.04.2011, 18:07
процедуры sound и delay портят cx
1
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
22.04.2011, 00:30  [ТС]
murderer, и как устранить спор?

Добавлено через 4 часа 46 минут
ну, т. е. какую команду стоит ввести что бы нейтрализовать данную порчу
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
22.04.2011, 00:45
Цитата Сообщение от White Luna Посмотреть сообщение
какую команду стоит ввести
Нужно в начале процедур sound и delay сохранять cx в стеке, а в их конце - восстанавливать.
1
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
22.04.2011, 13:17
White Luna, а зачем дублируется
mov cx,44/a1: .../loop a1 и
mov si,0 /a1: cmp si,44/je skip/.../inc si/.../loop a1
масло масленное....
можно переделать два массива buf и buf1
buf dw 185, 247, ...
buf1 dw 1, 1, ....
в один массив buf
buf dw 185, 1, 247, 1,...
и тогда всё упрощается
Assembler
1
2
3
4
5
6
7
8
9
        lea si,buf
        mov cx,44
a1:   push cx
        lodsw;mov ax,[si]  si+=2
        call Sound   
        lodsw;mov ax,[si]  si+=2    
        call Delay   
        pop cx
        loop a1
Спор, порча... где тебя ассемблеру учат? Сглаз, приворот регистров, гадание на дампе, снимаю негативную карму с винчестера
1
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
27.04.2011, 10:10  [ТС]
Mikl___,
в том и дело что не учат, дают некую базу - пару команд и крутитесь как хотите)
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
28.04.2011, 05:19
White Luna, то есть подлые преподаватели всё-таки дают некую базу и, какие наглецы, надеются на сознательность студентов, на их заинтересованность в получении знаний, природное любопытство и смекалку. А всего-то нужно -- заставлять зубрить, пороть и, при первой возможности, отчислять из университетов. Ну не ваше это, не ваше... Зачем выбирать специальность, о которой нет никакого представления, ни призвания к этой специальности? Зачем идти в институты, которые тебе выбрали папа и мама?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2011, 05:19
Помогаю со студенческими работами здесь

Остановка мелодии
Подскажите пожалуйста как можно сделать что бы при нажатии на кнопку мелодия останавливалась. В моем случаи она продолжает играть до самого...

Название мелодии
Могли бы Вы напечатать эти иероглифы?

Мелодии на Attiny2313
Здравствуйте форумчане. Стоит задача отыграть 1-2 мелодий, имея МК attiny2313 и динамик. Перечитал разную литературу, но по прежнему не...

Мелодии на бипере
На правах флуда! Всех с прошедшим, пусть лучше позже, чем никогда :-) + хотелось бы побольше иметь в своём арсенале таких вот веселушек,...

Воспроизведение мелодии
Есть примеры программ или информация по воспроизведению заданных нот на ассемблере. Заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru