Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2011, 18:52   #1
BARS_
 
Регистрация: 10.11.2011
Сообщений: 9
Вопрос Простая мелодия под Windows...

Надо написать на ассемблере программу которая будет воспроизводить какую-нибудь простую мелодию, ну или просто несколько нот. Все это должно работать под Windows. Насколько я понял, начиная с Win NT, получить доступ к таймеру, управляющему звуком при помощи команд In\Out, не возможно...

Использовал такой код:
Код:
.386
.model flat
includelib import32.lib
extrn Beep:proc
.code
start:  push 1000;Длительность звука, в миллисекундах.  
        push 1500;Частота звука, в герцах. Этот параметр должен быть в диапазоне 37 по 32 767 (0x25 через 0x7FFF).
        call Beep
        retn
end start
Он скомпилировался, но программа после запуска вылетает и винда выдает сообщение, что прекращена работа программы... В качестве компилятора использую TASM, версия винды - Windows 7...

Как еще можно сделать?
BARS_ вне форума Ответить с цитированием
Старый 11.11.2011, 04:19   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

BARS_
Программа писалась под Windows XP поэтому окончание программы RETN -- возможно, что для Windows 7 вместо RETN стоит поставить функцию ExitProcess,0. А вообще, программа так и должна была отработать, пропищать звуковой картой 1 секунду и завершиться, может быть для наглядности стоило менять частоту и длительность сигнала. А для проигрыша мелодии используют API-функцию PlaySound
А причины вылета программы скорее всего в том, что ты используешь tasm.exe и tlink.exe -- для написания программ под 32-разрядный Windows тебе нужны: tasm32.exe, ilink32.exe и import32.lib из Borld C++ или Delphi

Последний раз редактировалось Mikl___; 11.11.2011 в 06:09.
Mikl___ вне форума Ответить с цитированием
Старый 11.11.2011, 17:33   #3
BARS1991
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 18
Вопрос

Я использую tasm32, ilink32.exe и import32.lib. Скачивал TASM5+. import32.lib взял из Code Gear Rad Studio 2007...
BARS1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция под Windows 7 & Windows XP Стелс Общие вопросы Delphi 3 31.10.2011 13:48
wchar_t под linux => wchar_t под windows hard-t Qt и кроссплатформенное программирование С/С++ 0 28.10.2011 17:57
Драйвера под Windows XP unbanned Компьютерное железо 2 07.02.2011 20:50
мелодия в паскале hasana Паскаль, Turbo Pascal, PascalABC.NET 4 26.05.2010 23:11
Разница исполнения под Windows XP и Windows Server 2003? -Nast- Общие вопросы Delphi 0 02.06.2009 09:20