Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 552
от 21.09.2006, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 347, Экспертов: 35
В номере:Вопросов: 9, Ответов: 11


Вопрос № 55562: Доброго времени суток уважаемые эксперты. У меня возник вопрос: ЗАЧЕМ ХУТЬ В ДИАЛОГОВОМ ОКНЕ НАДО ПОЛУЧАТЬ КОММАНДНУЮ СТРОКУ????????? :( P.S. Десятый урок Икзелиона ...
Вопрос № 55565: Доброго времени суток уважаемые эксперты. Можно ли использовать инструкции 3DNow! в процессорах Intel. Спасибо. ...
Вопрос № 55566: Доброго времени суток уважаемые эксперты. Подскажите API функции вызова диалога выбора цвета, шрифта, и сохранения файла. Справочник у меня есть, но не знаю как эти функции называются. Спасибо. ...
Вопрос № 55567: Доброго времени суток уважаемые эксперты. SSE это что-то типа MMX(расширение) или FPU(отдельное утройство). Спасибо. ...
Вопрос № 55568: Доброго времени суток уважаемые эксперты. Так можно ли перехватить аппаратное прерывание в вин32. Допустим использовать ДОСовский обработчик девятого прерывания в вин32. Заранее благодарю, эксперты. ..
Вопрос № 55569: Доброго времени суток уважаемые эксперты. Что быстрее FAT32 or NTFS? Заранее спасибо. ...
Вопрос № 55601: Здрасьте, ув. эксперты. Простите, что немножко не в тему, но рассовывать связанные вопросы по разным рассылкам не хочется. I. Подскажите формат какого-нибудь общеизвестного звукового файла (MP3 или WAV или ещё что-нибудь). II. Есть ли во...
Вопрос № 55621: Здравствуйте уважаемые эксперты. Чё-то Я не понял после GetOpenFileName где находится имя выбранного файла. Спасибо. ...
Вопрос № 55646: Здравствуйте, можно ли в Windows изменять код какой-нибудь своей процедуры или функции? Допустим, есть у меня процедура proc A mov eax,ebx ret И я беру и зная её адрес пишу свой код. Как такое возможно?...

Вопрос № 55.562
Доброго времени суток уважаемые эксперты.
У меня возник вопрос: ЗАЧЕМ ХУТЬ В ДИАЛОГОВОМ ОКНЕ НАДО ПОЛУЧАТЬ КОММАНДНУЮ СТРОКУ????????? :(
P.S.
Десятый урок Икзелиона
Отправлен: 15.09.2006, 20:02
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: mix_mix
Здравствуйте, ENS!
А просто так :)
Наверное, автор хотел показать какие параметры передаются прцедуре main (здесь WinMain) на языке Си. В приципе, сама WinMain здесь тоже только чисто для красоты, как и многие вещи в его туторах. Ведь они учат не оптимизировать, а только еще писать программы. Вот потом уже можно и оптимизировать, когда научитесь владеть языком.
Удачи!
Ответ отправил: mix_mix (статус: 7-ой класс)
Ответ отправлен: 15.09.2006, 20:11


Вопрос № 55.565
Доброго времени суток уважаемые эксперты.
Можно ли использовать инструкции 3DNow! в процессорах Intel.
Спасибо.
Отправлен: 15.09.2006, 20:03
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: mix_mix
Здравствуйте, ENS!
К сожалению нельзя, также, как и в процессорах AMD нельзя (пока) использовать инструкции SSE3.
Наличие определенных возможностей процессора можно определить инструкцией cpuid.
MOV EAX,80000001h ; получает расширенные флаги возможностей CPU
CPUID ; 0Fh, 0A2h CPUID инструкция
TEST EDX,80000000h ; если 31 бит включен...
JNZ AMD ; 3DNow! поддерживается
CALL NO_3DNOWMESS ; нет, так нет
RET
Ответ отправил: mix_mix (статус: 7-ой класс)
Ответ отправлен: 15.09.2006, 20:28

Отвечает: Лысков Игорь Витальевич
Здравствуйте, ENS!
Есть неплохая утилитка для определения возможностей как процессора, так и все системы в целом
http://www.cpuid.com/cpuz.php
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 18.09.2006, 11:51


Вопрос № 55.566
Доброго времени суток уважаемые эксперты.
Подскажите API функции вызова диалога выбора цвета, шрифта, и сохранения файла.
Справочник у меня есть, но не знаю как эти функции называются.
Спасибо.
Отправлен: 15.09.2006, 20:03
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mashin
Здравствуйте, ENS!
Выбор цвета: BOOL ChooseColor(LPCHOOSECOLOR lpcc)
Шрифта: BOOL ChooseFont(LPCHOOSEFONT lpcf)
Cохранениe файла: BOOL GetSaveFileName(LPOPENFILENAME lpofn)
Ответ отправил: Mashin (статус: 1-ый класс)
Ответ отправлен: 15.09.2006, 20:45


Вопрос № 55.567
Доброго времени суток уважаемые эксперты.
SSE это что-то типа MMX(расширение) или FPU(отдельное утройство).
Спасибо.
Отправлен: 15.09.2006, 20:04
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: mix_mix
Здравствуйте, ENS!
SSE представляет собой расширение процессора в виде 8 независимых 128-битных регистров, 32-битного регистра управления и больше сотни инструкций.
Из этого следует, что SSE инструкции могут легко выполнятся параллельно с MMX/FPU инструкциями.
Расширения SSE2/SSE3/SSE4 представляют собой только наборы дополнительных инструкций.
Ответ отправил: mix_mix (статус: 7-ой класс)
Ответ отправлен: 15.09.2006, 20:50


Вопрос № 55.568
Доброго времени суток уважаемые эксперты.
Так можно ли перехватить аппаратное прерывание в вин32. Допустим использовать ДОСовский обработчик девятого прерывания в вин32.
Заранее благодарю, эксперты.
Отправлен: 15.09.2006, 20:04
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: mix_mix
Здравствуйте, ENS!
Можно, но для этого Вам необходимо написать драйвер или найти уязвимость в защите операционной системы. К сожалению, только так.
Ссылки, на статьи, которые могут Вам помочь в этом нелегком деле:
http://www.wasm.ru/article.php?article=apihook_3
http://www.wasm.ru/article.php?article=drvw2k16
Удачи!
Ответ отправил: mix_mix (статус: 7-ой класс)
Ответ отправлен: 15.09.2006, 20:31


Вопрос № 55.569
Доброго времени суток уважаемые эксперты.
Что быстрее FAT32 or NTFS?
Заранее спасибо.
Отправлен: 15.09.2006, 20:05
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: mix_mix
Здравствуйте, ENS!
Вообще-то этот вопрос совершенно не подходит под тему рассылки.
Но раз вопрос задан, отвечу:
FAT32 будет быстрее, т.к. в NTFS существуют такие понятия, как политика безопасности, транзакции etc. Из-за NTFS является более защищенной файловой системой (проверено - не убьешь :), но из-за этого менее быстрой. Вам стоит выбрать между скоростью и безопасностью, я советую выбирать второе, т.к. даже банальное отключение электроэнергии может угробть все данные на диске (если повредится MFT).
Ответ отправил: mix_mix (статус: 7-ой класс)
Ответ отправлен: 15.09.2006, 20:18


Вопрос № 55.601
Здрасьте, ув. эксперты. Простите, что немножко не в тему, но рассовывать связанные вопросы по разным рассылкам не хочется.

I. Подскажите формат какого-нибудь общеизвестного звукового файла (MP3 или WAV или ещё что-нибудь).
II. Есть ли возможность из-под DOS программировать колонки: высоту звука, длительность, громкость, аккорды, тембр(последний с примерами инструментов народного, духового и струнного оркестров)
III. Есть ли какая-либо прога, которая позволяет написать партитуру произведения и создаёт звуковой файл?
Отправлен: 16.09.2006, 10:21
Вопрос задал: Олег Владимирович (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sergijj
Здравствуйте, Олег Владимирович!

II. Программирование "колонок" сводится к программированию звуковой карты...:)

Судя по Вашему вопросу, Вы не очень разбираетесь в музыкальтых компьютерных технологиях, поэтому вкратце:
На нынешний момент существует 2 основных формата записи звука: SND (он же RAW, он же WAV, он же MP3 (MP3 - это просто метод компрессии WAV), он же OGG (тоже метод компрессии) и т.п.) и MIDI (развитие ветки семплированного звука).

SND - метод записи звука "как есть", т.е. просто сырые сцифрованные данные со входа звуковой карты. У этого метода есть огромные преимущества в редактировании звучания, тембра, высоты и пр..., но он слабо поддаётся партитурной записи, во всяком случае, я не видел ни одного музыкального редактора, который бы это делал корректно. В основном этот формат предназначен для редактирования, фильтрации и пр. именно _звучания_. Но зато в нём можно сцифровать всё, что угодно, причём именно с тем качеством, которое угодно и которое позволяет имеющаяся в наличии аппаратура (например качество звуковой карты). Можно сцифровать полную вокальную партию, можно ноту одного какого-нибудь инструмента (а потом проигрывая его на разных частотах, создавать мелодию), можно (вот и MP3) полную музыкальную композицию.
Метод именно _написания_ музыки в формате SND состоит в том, что мы добываем откуда-нибудь одну (хотя бы) ноту интрумента (берём из какой-нибудь звуковой библиотеки, выдираем из какой-нибудь песни или просто цифруем оригинал), а потом проигрываем её с угодной нам громкостью, эффектами и пр... с высотой, диктуемой необходимой мелодией (гармонией). Для оркестрового звучания мы делаем то же самое, но в несколько каналов звуковой карты и с несколькими инструментами.
Для ознакомления с этим форматом и методом рекомендую посмотреть DOS'овский музыкальный редактор Impulse Tracker. Он понимает SND-формат и знает много форматов "последовательностей", т.е. самой музыки, а не отдельных звуков: STM, S3M, IT, XM и т.д.

MIDI - метод не позволяет цифровать звук напрямую. Можно конечно, но заморочек там выше крыши с этим. Метод из себя (для компьютера) представляет собой просто номер (индекс) инструмента в _стандартном_ звуковом банке (ни шагу вправо-влево), номер его ноты и список эффектов, что позволяет легко и непринуждённо создавать музыкальные редакторы партитурного типа. Правда чтобы написать _настоящую_ партитуру, простого MIDI редактора недостаточно...:) Зато всё видно так сказать в "классической" форме: нотки, скрипичные и басовые ключи, знаки альтерации. И ещё: этот формат очень переносимый. Его понимают все синтезаторы с возможностью переноса данных, его понимают все семплерные устройства... НО (!)...
У формата MIDI есть много недостатков:
1) Просто так, без большой подготовки, невозможно выйти за пределы стандартного банка инструментов (который кстати сказать не очень хороший и очень короткий, например для того, чтобы туда вставить звучание народных инструментов, то придётся выкинуть оттуда, например, аккустическую гитару, ибо если выкинуть более непохожий инструмент, то на другом семплере можно получить жуткую какофонию в уши и полную потерю всех оркестровых функций в композиции). А если и получится, то эту же работу придётся провести на всех семплерных устройствах, куда эти данные будут посылаться (если это вообще возможно), ибо там эти данные будут восприниматься именно как _стандартный_ банк звуков.
2) Готовая композиция будет _по_разному_ звучать на разных семплерных устройствах и компьютерах: он мерзко-синтезо-писклявого до синтетически-приличного. Добиться одинакового звука на разных проигрывалках будет практически невозмождно. Это происходит от того, что изначально формат MIDI предназначался исключительно для _семплированного_ звука(т.е. не для реального звучания инструмента, а _программной_симуляции_звука_ этого инструмента).
3) Для хорошего звучания MIDI необходимо иметь _ну_очень_качественную_и_дорогую_аппаратуру_, причём, как уже упоминалось, нигде кроме _именно_этой_ аппаратуры это хорошо звучать не будет...:(
4) Для написания музыки в MIDI просто необходима MIDI-клавиатура, иначе надоест мышкой нотки расставлять уже через 10 мин...:(

Ой, чего-то я разбежался...:) Пора обобщить...;-)

Редакторов же, которые _корректно_ работают _одновременно_ с обоими форматами (SND & MIDI), а потом всё это может сохранить в приемлемом для дальнейшего использования (кроме чистого проигрывания) виде - я не видел.
Кстати, именно _струнные_ инструменты (в том числе о инструменты оркестра народных инструментов) хуже всего (но возможно) поддаются оцифровке, и совершенно не поддаются семплированию (при семплировании струн получается настолько мерзкий звук, что хочется повесится...:)).

III. Учитывая вышесказанное, видно, что на данный исторический момент (пусть меня поправят!!!) возможно получить _либо_:
1) Хорошие возможности редактирования, написания и проигрывания - это музыкальные редакторы типа Tracker: Scream Tracker, Impulse Tracker (под Unix - Cheezee Tracker (За точность написания - не отвечаю)), Fast Tracker, звуковые редакторы типа Forge: Sound Forge, Cool Editor и пр...
2) Либо "партитурную" запись нот, но с очень слабыми возможностями работы со звуком, это всевозможные MIDI-редакторы типа: Cake Walk, всякие там Sampler Sdudio и пр...
---------
Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 5-ый класс)
Ответ отправлен: 18.09.2006, 11:39
Оценка за ответ: 5


Вопрос № 55.621
Здравствуйте уважаемые эксперты.
Чё-то Я не понял после GetOpenFileName где находится имя выбранного файла.
Спасибо.
Отправлен: 16.09.2006, 15:27
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: n0name
Здравствуйте, ENS!
OPENFILENAME ofn;
...
ofn.lpstrFile - имя файла.
Ответ отправил: n0name (статус: 4-ый класс)
Ответ отправлен: 16.09.2006, 15:46


Вопрос № 55.646
Здравствуйте, можно ли в Windows изменять код какой-нибудь своей процедуры или функции?
Допустим, есть у меня процедура
proc A
mov eax,ebx
ret
И я беру и зная её адрес пишу свой код.
Как такое возможно?
Отправлен: 16.09.2006, 19:55
Вопрос задал: Юра Устинов (статус: 6-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: mix_mix
Здравствуйте, Юра Устинов!
Возможно, если хотите у себя, в своем user-mode адресном пространстве править, требуется только разрешать запись в секцию кода (пишу на фасме, поэтому, как на масме будет, не помню, смотрите опции link.exe).
Если речь идет о WinAPI функциях в своем или чужом процессе, то тоже возможно, но описывать долго. Подобное описано здесь:
http://www.wasm.ru/article.php?article=apihook_1
Заодно и про перехват API почитаете :)
Удачи!
Ответ отправил: mix_mix (статус: 7-ой класс)
Ответ отправлен: 16.09.2006, 21:06
Оценка за ответ: 5

Отвечает: n0name
Здравствуйте, Юра Устинов!
Да можно. Если вы хотите заменить код в файле, то компилируете ваш код fasm'ом в бинарный и заменяете исходный код, следует учитывать размер вашего кода, чтобы он не был больше исходного.
А если в памяти, то просто копируите закодированный в маш коды текст вашей процедуры в память по данному адресу, тоже следя за размером кода.
Ответ отправил: n0name (статус: 4-ый класс)
Ответ отправлен: 16.09.2006, 23:03
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное