Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 10

Сгенерировать через Speaker IBM PC 10 звуковых сигналов

04.11.2012, 17:41. Показов 2073. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, форумчане!

Есть задание сгенерировать через Speaker IBM PC 10 звуковых сигналов. Для каждого из звуков коэффициент деления частоты 1000. Для 1-го 1000 (потом 2000, 3000 и т.д.) С продолжительностью 0,2 секунды и задержкой 0,2 секунды между их воспроизведением.

С ассемблером работаю в первые, есть самые базовые знания. Читаю литературу, однако не сильно помогает. Есть код, однако не сильно уж он хочет работать. Точнее он компилируется и запускается, но никаких звуков не издает. Запускаю через Турбо Паскаль. У самого Windows 7 x86 pro. Прошу помощи, буду благодарен

Pascal
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
begin
asm
 
MOV AL, 10110110b    //подготовка слова настройки режима
OUT 43h, AL        //программирование режима работы канала 2
MOV DX, 1000        //засылка в регистр DX значения 1000
 
@P:            //начало главного цикла
MOV AX, DX        //подготовка коэффициента деления N=1000
OUT 42h, AL        //засылка младшего байта N в канал 2 (спикер)
MOV AL, AH        //пересылка старшего байта N в AL
OUT 42h, AL        //засылка старшего байта N в канал 2 (спикер)
 
IN AL, 61h        //считываем значение (вкл/выкл) спикера
OR AL, 00000011b    //изменяем значение на ВКЛ
OUT 61h, AL        //включение звукового тона
 
MOV BX, 4000        //временная задержка 4000 итераций большого цикла
@L1:            //начало большого цикла
   MOV CX, 0        //макс. Кол-во итераций малого цикла (0--)
   @M1:            //начало малого цикла
      NOP            // эти команды дают задержку
      NOP
      NOP
   DEC CX        //уменьшаем СХ тут
   JNZ @M1        //пока СХ не станет=0 повторяем М1 цикл
DEC BX            //уменьшаем ВХ тут
JNZ @L1            //пока ВХ не станет=0 повторяем L1 цикл
 
IN AL, 61h        //считываем значение 61h
AND AL, 11111100b    //устанавливаем в выкл положение
OUT 61h, AL        //выключаем звуковой тон
 
MOV BX, 4000        //временная задержка 4000 итераций большого цикла
@L2:             //начало большого цикла
   MOV CX, 0        //макс. Кол-во итераций малого цикла (0--)
   @M2:             //начало малого цикла
      NOP            // эти команды дают задержку
      NOP
      NOP
   DEC CX        //уменьшаем СХ тут
   JNZ @M2        //пока СХ не станет=0 повторяем М2 цикл
DEC BX            //уменьшаем ВХ тут
JNZ @L2            //пока ВХ не станет=0 повторяем L2 цикл
 
ADD DX, 1000        //увеличиваем коэффициент деления
CMP DX, 11000        //сравниваем DX с 11000
JNZ @P            //если DX не равен 11000 то выполняем главный цикл Р опять
 
end;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2012, 17:41
Ответы с готовыми решениями:

Сгенерировать 10 звуковых сигналов продолжительностью 0,2 секунды с задержкой 0,2
Задание1: Сгенерировать 10 звуковых сигналов продолжительностью 0,2 секунды с задержкой 0,2 секунды между их воспроизведением. ...

Генерация звукового сигнала через Speaker IBM PC
Всем привет! Есть готовая программа которая генерирует звуки, но мне задали вопрос что если в MOV AL, 10110110b поменять на MOV AL,...

Резидентная программа, осуществляющую генерацию звуковых сигналов при нажатии на клавиши клавиатуры
Есть задача: нужно написать резидентную программу, осуществляющую генерацию звуковых сигналов при нажатии на клавиши клавиатуры. Есть...

3
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
04.11.2012, 22:34
В приведенном коде все правильно. Но. 7-рка особенно ревностно относится к этим портам. В ХР есть надежда, но могут вмешаться какие-либо вирусоборцы. Поэтому звук услышать не удастся. Напишите в TP любой Sound(..) - рузультат будет тот же
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
05.11.2012, 08:12
Цитата Сообщение от Dmitrinik Посмотреть сообщение
Напишите в TP любой Sound(..) - рузультат будет тот же
sound(..); delay(..); nosound;

Добавлено через 1 час 6 минут
Dmitrinik, кстати, на хрюше и под паскалем и под асмом вполне успешно звонил динамиком!
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
05.11.2012, 10:14
Запускайте через DosBox, он эмулирует звук динамика через звуковую карту.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2012, 10:14
Помогаю со студенческими работами здесь

Программирование звуковых сигналов
составить программу звука, который на картинке.

Генератор звуковых сигналов
Всем доброго времени суток. Дали мне задание: сделать на ардуино генератор звуковых сигналов. Что он должен уметь: 1) генерировать частоты,...

Генерация звуковых сигналов
Составить программу звуковых сигналов в соответствии с диаграммой. Pause ввести с клавиатуры Число ступеней 100 Прерывание по ESC ...

Обработка и фильтрация звуковых сигналов
Здравствуйте. Очень нужен ваш совет. В университете задали написать программу фильтрации звука. (удаления шума и лишних гармоник). За...

Программа генерации звуковых сигналов
Необходимо составить программу согласно заданию. Почти ничего в ассемблере не понимаю. Самая последняя задача и я прощаюсь с ассемблером....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru