Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа имитации звуковой серены 
:(
    Опции темы
serrggeee
Дата 29.12.2011, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 29.12.2011

Репутация: нет
Всего: нет



скажите мне пожалуйста чем отличается исходный код для DOS Windows Linuks и в частности какое различе исходноого кода для DOS в TASM и Windows для MASM, мне нужно программу написанную для DOS откомпилировать в Windows используя MASM.
 Вот этот исходный код извините пожалуйсто кодировка коментариев не понятнай причину не знаю.
Код

;---------Prg_7_1.asm---------------
;Џа®Ја ¬¬  ,Ё¬ЁвЁагой п §ўгЄ бЁаҐ­л.
;€§¬Ґ­Ґ­ЁҐ ўлб®вл §ўгЄ  ®в 450 ѓж ¤® 2100 ѓж.
;€бЇ®«м§гҐвбп ¬ Єа®б delay (§ ¤Ґа¦Є ).
;ЏаЁ ­Ґ®Ўе®¤Ё¬®бвЁ
;¬®¦­® Ї®¬Ґ­пвм §­ зҐ­ЁҐ § ¤Ґа¦ЄЁ (Ї® 㬮«з ­Ёо - ¤«п Їа®жҐбб®а  Pentium).
;------------------------------------
masm
model    small
stack    100h
delay macro time
;¬ Єа®б § ¤Ґа¦ЄЁ, ҐЈ® ⥪бв ®Ја ­ЁзЁў Ґвбп ¤ЁаҐЄвЁў ¬Ё macro Ё endm.
;Ќ  ўе®¤Ґ - §­ зҐ­ЁҐ § ¤Ґа¦ЄЁ (ў ¬Єб)
    local    ext,iter
    push    cx
    mov    cx,time
ext:
    push    cx
    mov    cx,5000
iter:
    loop    iter
    pop    cx
    loop    ext
    pop    cx
endm
.data    ;ᥣ¬Ґ­в ¤ ­­ле
tonelow    dw    2651    ;­Ё¦­пп Ја ­Ёж  §ўгз ­Ёп = 450 ѓж
cnt    db    0    ;бзсвзЁЄ ¤«п ўл室  Ё§ Їа®Ја ¬¬л
temp    dw    ?    ;ўҐае­пп Ја ­Ёж  §ўгз ­Ёп
.code    ;ᥣ¬Ґ­в Є®¤ 
main:    ;в®зЄ  ўе®¤  ў Їа®Ја ¬¬г
    mov    ax,@data    ;бўп§лў Ґ¬ ॣЁбва ds б ᥣ¬Ґ­в®¬
    mov    ds,ax    ;¤ ­­ле зҐаҐ§ ॣЁбва ax
    xor    ax,ax    ;®зЁй Ґ¬ ax
go:
;§ ­®бЁ¬ б«®ў® б®бв®п­Ёп 10110110b(0‚6h) ў Є®¬ ­¤­л© ॣЁбва (Ї®ав 43h)
    mov    al,0B6h
    out    43h,al
    in    al,61h    ;Ї®«гзЁ¬ §­ зҐ­ЁҐ Ї®ав  61h ў al
    or    al,3    ;Ё­ЁжЁ «Ё§Ёа㥬 ¤Ё­ ¬ЁЄ Ё Ї®¤ Ґ¬ в®Є ў Ї®ав 61h
    out    61h,al
    mov    cx,2083    ;Є®«ЁзҐбвў® и Ј®ў бвгЇҐ­з в®Ј® Ё§¬Ґ­Ґ­Ёп в®­ 
musicup:
;ў ax §­ зҐ­ЁҐ ­Ё¦­Ґ© Ја ­Ёжл з бв®вл 
    mov    ax,tonelow
    out    42h,al    ;ў Ї®ав 42h ¬« ¤иҐҐ б«®ў® ax :al
    xchg    al,ah    ;®Ў¬Ґ­ ¬Ґ¦¤г al Ё ah
    out    42h,al    ;ў Ї®ав 42h бв а襥 б«®ў® ax:ah
    add    tonelow,1    ;Ї®ўли Ґ¬ в®­
    delay 1    ;§ ¤Ґа¦Є  ­  1 ¬Єб
    mov    dx,tonelow    ;ў dx ⥪г饥 §­ зҐ­ЁҐ ўлб®вл
    mov    temp,dx    ;temp - ўҐае­ҐҐ §­ зҐ­ЁҐ ўлб®вл 
    loop    musicup    ;Ї®ўв®аЁвм жЁЄ« Ї®ўл襭Ёп
    mov    cx,2083    ; ў®ббв ­®ўЁвм бзҐвзЁЄ жЁЄ« 
musicdown:
    mov    ax,temp    ;ў ax ўҐае­ҐҐ §­ зҐ­ЁҐ ўлб®вл
    out    42h,al    ;ў Ї®ав 42h ¬« ¤иҐҐ б«®ў® ax :al
    mov    al,ah    ;®Ў¬Ґ­ ¬Ґ¦¤г al Ё ah
    out    42h,al;ў Ї®ав 42h бв а襥 б«®ў® ax :ah
    sub    temp,1    ;Ї®­Ё¦ Ґ¬ ўлб®вг
    delay 1    ;§ ¤Ґа¦Є  ­  1 ¬Єб
    loop musicdown    ;Ї®ўв®аЁвм жЁЄ« Ї®­Ё¦Ґ­Ёп
nosound:
    in    al,61h    ;Ї®«гзЁ¬ §­ зҐ­ЁҐ Ї®ав  61h ў AL
    and    al,0FCh    ;ўлЄ«озЁвм ¤Ё­ ¬ЁЄ
    out    61h,al    ;ў Ї®ав 61h
    mov    dx,2651    ;¤«п Ї®б«Ґ¤гойЁе жЁЄ«®ў
    mov    tonelow,dx
    inc    cnt    ;㢥«ЁзЁў Ґ¬ бзсвзЁЄ Їа®е®¤®ў, в® Ґбвм 
;Є®«ЁзҐбвў® §ўгз ­Ё© бЁаҐ­л
    cmp    cnt,5    ;5 а § ? 
    jne    go    ;Ґб«Ё ­Ґв, Ё¤вЁ ­  ¬ҐвЄг go
    exit:
    mov    ax,4c00h    ;бв ­¤ ав­л© ўл室
    int    21h
end main    ;Є®­Ґж Їа®Ја ¬¬л



PM MAIL   Вверх
arcsupport
Дата 29.12.2011, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 24.10.2008

Репутация: нет
Всего: 2



"В лоб" это сделать не получиться.
Для каждой "ноты" Вашей мелодии создайте пару <частота,длительность>.
Затем выведите звук с использованием функции MessageBeep.
Возникнут вопросы -- задавайте.

Это сообщение отредактировал(а) arcsupport - 29.12.2011, 20:07
PM MAIL   Вверх
serrggeee
Дата 29.12.2011, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 29.12.2011

Репутация: нет
Всего: нет



ну это же готовая программа из учебного пособия, почему не получится и скажите эта прога для DOS или Windows, как различить?
PM MAIL   Вверх
arcsupport
Дата 29.12.2011, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 24.10.2008

Репутация: нет
Всего: 2



Для DOS.
Из-под Windows Вы не сможете работать с портами ввода-вывода.
PM MAIL   Вверх
serrggeee
Дата 29.12.2011, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 29.12.2011

Репутация: нет
Всего: нет



а почему я не смогу с ними работать?
PM MAIL   Вверх
arcsupport
Дата 30.12.2011, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 24.10.2008

Репутация: нет
Всего: 2



serrggeee, всех подробностей раскрыть в рамках одного поста я не смогу.
Посмотрите, пожалуйста, в MSDN описание соответствующих функций.
Все, что Вам может потребоваться, я уже сказал.
Начинайте, пожалуйста, программировать.
PM MAIL   Вверх
500mhz
Дата 30.12.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



исходник для ДОС, под виндой работать не будет, (будет в 95 наверно)


--------------------

PM MAIL ICQ   Вверх
serrggeee
Дата 30.12.2011, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 29.12.2011

Репутация: нет
Всего: нет



Ok!
PM MAIL   Вверх
arcsupport
Дата 30.12.2011, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 24.10.2008

Репутация: нет
Всего: 2



500mhz, по всей видимости, Вы правы. Будет работать на всех 9x (95/98/ME).
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0708 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.