Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 572
от 19.06.2003, 17:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3521 Отправлено ответов: 10359 Активность: 294.2 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Bob Johnson Статус: Профессиональный Общий рейтинг: 151.93 URL: Программирование [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 122.05 URL: мой сайт [Подробней >>] |
Дмитрий Статус: Профессиональный Общий рейтинг: 141.2 Телефон: 8-903-985-66-27 (Билайн-GSM) [Подробней >>] |
Hayk Статус: Опытный Общий рейтинг: 114.18 URL: Perosnal Web Page which has been created long ago. [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 137.61 [Подробней >>] |
_vt Статус: Опытный Общий рейтинг: 122.34 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 112.49 [Подробней >>] |
Zedr0n Статус: Начальный Общий рейтинг: 113.04 [Подробней >>] |
Tigran K. Kalaidjian Статус: Опытный Общий рейтинг: 118.75 URL: Методы оптимизации работы ПК [Подробней >>] |
St Статус: Опытный Общий рейтинг: 107.67 [Подробней >>] |
Lynx Статус: Опытный Общий рейтинг: 124.17 Телефон: (8442) 750522 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.61 [Подробней >>] |
Ramzes Статус: Профессиональный Общий рейтинг: 125.78 URL: Microsoft homepage [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 130.74 URL: Эхоконференция по вирмейкингу Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 112.28 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Knignick Статус: Опытный Общий рейтинг: 109.37 URL: Мой каталог ссылок по программированию [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3469. Доброго времени суток, уважаемые эксперты. У меня опять проблемма с защитным режимом. Таперь смог в ... (ответов: 1)
Вопрос № 3470. Добрый день ! На тему принтера. Поискал, замкул, сперва потрещало, а потом и дым пошел. Под овации о... (ответов: 3)
Вопрос № 3471. Привет! Снова я. Спасибо за ответ на вопрос номер 3400(См. приложение). Для MozgC. Проблема в том, ... (ответов: 1)
Вопрос № 3474. По поводу №3452 Наверное вопрос следует уточнить... Допустим резиденту нужно выгрузить себя из памят... (ответов: 1)
Вопрос № 3475. Здравствуйте! Оцените пожалуйста качество кодинга, и укажите на мои ошибки, с точки зрения оптимизац... (ответов: 1)
Вопрос № 3476. Привет всем Экспертам! Подскажите как использовать макросредства. Необходимо создать сегмент данных,... (ответов: 3)
Вопрос № 3477. Всем здрасте ф-ция FindFirstFile ищет и файлы и subдиректории. При этом заполняется структура WFD. Т... (ответов: 1)
Вопрос № 3479. Здравствуйте эксперты! Написал программу на ассемблере под DOS в которой есть меню, но не знаю как п... (ответов: 5)
Вопрос № 3480. Уважаемые эксперты, не могли бы вы подсказать где я могу найти материал о всех прерываниях и функция... (ответов: 8)
Вопрос № 3481. Народ, помогите с описанием как разложит звук на спектр я плохой математик (мягко сказать) надо на а... (ответов: 2)
Вопросов: 10, ответов: 26
Вопрос № 3469 |
Доброго времени суток, уважаемые эксперты.
У меня опять проблемма с защитным режимом. Таперь смог в него переходить и т.п. В нём у меня есть дискриптор 64кбайтового сегмента с базой 0B8000h, я заполняю его нулями (ax=0730h) и перехожу обратно в реальный режим. Если я запускался из vc, то он ещё работает, но при попытке что-либо запустить пише your program caused a divide overflow error... С чем это может быть связано!?
Вопрос отправлен: 14.06.2003, 13:31
Отправитель: Dark_Lord (Dark_Lord@RusFAQ.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Dark_Lord!
А ты заполняешь 64 кб, или только весь экран - может быть затираешь что-то?
Еще попробуй перезагрузить все сегментные регистры и сделать far jump.
* EMan1.3: ---===*** The Eternal Power ***===---
Ответ отправлен: 15.06.2003, 01:40
Отправитель: Bob Johnson
Вопрос № 3470 |
Добрый день !
На тему принтера.
Поискал, замкул, сперва потрещало, а потом и дым пошел. Под овации он скончался.
Теперь другой вопрос - где найти дешевый принтер?(струйный), возможно б/у, черно-белый. Какой посоветуете? Из-за того, что это - оффтопик, лучше пишите на мыло.
Заранее благодарю
Тигран
Приложение:
Вопрос отправлен: 14.06.2003, 17:27
Отправитель: Tigran Kalaidjian (kalaidjian@pochtamt.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
объявляется минута молчания...
Ответ отправлен: 14.06.2003, 18:32
Отправитель: Broken Sword
Отвечает Дмитрий
Здравствуйте, Tigran Kalaidjian!
Бывает! Эх, сколько я микросхем попалил, прежде чем у меня заработал контроллер дисковода для Спекки. Кстати, когда что-то горит с треском и дымом, то это скорее всего связано с силовыми цепями. Печатные дорожки обычно покрываются лаком и при коротыше бывает отслаиваются-отгорают. Посмотри на те дорожки, которые ты коротил. Обычно горит в тонком месте.
P.S.: А к низкоуровневому программированию это все-равно имеет самое непосредственное отношение. И ПЗУ там есть, стопудово! Иначе как внутренний проц управляет всем своим добром? (те-же шрифты!) Другое дело, что это все может быть реализовано как микроконтроллер. В любом случае перепрошивка ПЗУ дала бы громадный опыт. Я уже не говорю о том, что скорее всего в самой прошивке есть процедурка управления вышеупомянутым датчиком. И если ПЗУ все-равно перешивать... Предлагаю заняться поиском инфы на эту тему!
Ответ отправлен: 16.06.2003, 11:43
Отправитель: Дмитрий
Отвечает Hayk
Приветствую Вас, Tigran Kalaidjian!
Говорил - агония :-))
Ответ отправлен: 16.06.2003, 12:14
Отправитель: Hayk
Вопрос № 3471 |
Привет!
Снова я.
Спасибо за ответ на вопрос номер 3400(См. приложение).
Для MozgC. Проблема в том, что размеры плат могут быть каждый раз разные.
Для masquer. Искал алгоритм Монте-Карло несколько дней. К сожалению, выходит все что хочешь, но только не то, что я ищу. Если Вам не трудно, могли бы Вы бросить пару конкретных ссылок?
Заранее спасибо.
Best regards
alexneta.
Приложение:
Вопрос отправлен: 14.06.2003, 18:46
Отправитель: alexneta (alexneta@bezeqint.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, alexneta!
Через гугл ищи, по слову "алгоритм Монте-Карло" около 1000 ссылок, первые просмотрел - вроде оно.
Ответ отправлен: 15.06.2003, 11:59
Отправитель: masquer
Вопрос № 3474 |
По поводу №3452
Наверное вопрос следует уточнить...
Допустим резиденту нужно выгрузить себя из памяти,
тогда нужно сделать примерно следующее:
; ------------------------------
; Проверить текущий вектор на совпадение с моим,
; если не совпадает не выгружать...
; Иначе:
lds dx,dword ptr cs:dwTrueVector
mov ax,25xxh
int 21h
; ------------------------------
Вопрос: какие действия мне нужно предпринять дальше,
чтобы корректно осводить память и не повесить прерываемый
процесс. Если несложно, пару строк кода...
Вопрос отправлен: 15.06.2003, 02:10
Отправитель: shade
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, shade!
Вроде нужно просто освободить блок памяти, занимаемый программой и переменными окружения (сначала переменные, затем - программа). Функция 49h.
* EMan1.3: ---===*** The Eternal Power ***===---
Ответ отправлен: 16.06.2003, 00:38
Отправитель: Bob Johnson
Вопрос № 3475 |
Здравствуйте!
Оцените пожалуйста качество кодинга, и укажите на мои ошибки, с точки зрения оптимизации по быстродействию, так же подскажите где можно сделать короче не теряя в эффективности.
Спасибо всем потратившим на это свое время.
Приложение:
Вопрос отправлен: 15.06.2003, 05:49
Отправитель: 0ff
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, 0ff!
1. У тебя код 16-разрядный, переходи на 32.
2. В процессорах, начиная с пентиума, команды могут "спариваться" и выполняться одновременно, но только в том случае, если они используют разные регистры, например твой код:
mov bp,sp
mov dx,[bp]
dec dx
dec dx
mov ax,si
mov bp,di
add bp,7
mov ch,8
лучше бы переписать как:
и т.д.
mov bp, sp
mov ch, 8
mov dx, [bp]
mov ax, si
mov bp, di
dec dx
add bp, 7
dec dx
еще, с точки зрения скорость лучше заменить 2 dec dx на один sub dx, 2, т.к. они выполняются одинаково быстро (по 1 такту), но sub dx, 2 занимает больше места в памяти.
* EMan1.3: ---===*** The Eternal Power ***===---
Ответ отправлен: 16.06.2003, 00:38
Отправитель: Bob Johnson
Вопрос № 3476 |
Привет всем Экспертам!
Подскажите как использовать макросредства.
Необходимо создать сегмент данных, в котором бы размещалась секция сообщений.(Сообщения разделены на секции)
Создаётся макро (@int21).Макру передаются параметры.
Первый параметр Номер функции.
Второй параметр Сообщение.
...Не работает ->(в макро выдаёться ошибка (похоже что - то с оffset).
И необходимо чтобы не(!) все сообщения влазили в сегмент данных,а только те которые используються этим макро.
(Пишу как в мануалах описано.)
?...
Спасибо!
Приложение:
Вопрос отправлен: 15.06.2003, 09:25
Отправитель: Yuri
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Приветствую Вас, Yuri!
1) У меня работает так: (см. приложение)
2)
> необходимо чтобы не(!) все сообщения влазили в сегмент данных,а только те которые используються этим макро
Так не бывает... Чтобы не влазили, не описывай их...(если я правильно понял вопрос)
---===*** E-Man 1.2 - Powerful toy***===---
Приложение:
Ответ отправлен: 15.06.2003, 19:29
Отправитель: _vt
Отвечает Dark_Lord
Добрый день, Yuri!
Дело в том, что в макросе нельзя использовать offset, если нужно сделать что-либо с offsetom это задаётся в параметрах!
@int21 9,offset string
Ответ отправлен: 15.06.2003, 10:45
Отправитель: Dark_Lord
Отвечает Zedr0n
Добрый день, Yuri!
Что-то похожее у меня получилось, но макрос у меня принимает 3 параметр, длину
строки. Я думаю, что посчитать длину строки можно каким-то способом, но не
знаю как. Вся проблема для меня заключается в том, что внутри макроса сложно
ставить метки, так как при использовании макроса повторно, появляется еще одна
такая же метка, и, соответственно, Tasm начинает ругаться.
К слову, сегмент данных я не использую, но пока у меня возникла
только такая идея. Я еще подумаю, но вот полноценно работающий пример:
.model tiny
.data
.code
@int21 macro num,string,length
mov ah,&num&
jmp $+&length&+1 ; перепрыгнуть через данные
db &string&,'$'
mov dx,offset $-&length&-1 ; dx теперь указывает на строку
int 21h
endm
.386
org 100h
Start:
@int21 9,"Hello, World!",13
@int21 9,"Hello, You!",11
@int21 9,"Hurray!!!",9
ret
end Start
Ответ отправлен: 15.06.2003, 11:27
Отправитель: Zedr0n
Вопрос № 3477 |
Всем здрасте
ф-ция FindFirstFile ищет и файлы и subдиректории. При этом заполняется структура WFD. Так вот где-то в конце структуры должно содержаться имя найденного файла.
Вопрос: почему когда находится subдиректория то вместо ее имени мы видим какой то бред?
(так, если задать маску "С:*", то находится RECYCLED, а если сделать например поиск в "C:MASM32*" то судя по атрибуту найдена директория (10h), EAX содержит хэндл поиска для FindNextFIle, но в поле ИМЯ найденного файла мы видим какой то бред! Почему? Где имя найденной subдиректории?
Вопрос отправлен: 15.06.2003, 12:22
Отправитель: Broken Sword (brokensword@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Hayk
Приветствую Вас, Broken Sword!
Так вот где-то в конце структуры должно содержаться имя найденного файла.
Точнее начиная с байта удалённого на 2A от начала структуры. Проверил, нормально работает
то судя по атрибуту найдена директория (10h).
вернее побитовая комбинация с 10h.Ну у меня вроде всё нормально работает.
Ответ отправлен: 16.06.2003, 12:01
Отправитель: Hayk
Вопрос № 3479 |
Здравствуйте эксперты!
Написал программу на ассемблере под DOS в которой есть меню, но не знаю как подсоединить мышь так что-бы с помощью нее делать выбор в меню программы.
Подскажите пожалуйста как это сделать.
Лучше всего если пришлете простенький пример программы.
Заранее благодарен.
Алексей.
Вопрос отправлен: 15.06.2003, 16:07
Отправитель: Alexey (lexa67@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Добрый день, Alexey!
Отслеживаете положение указателя мыши на экране с помощью прерывания int33h(ф-ция 03h), проверяете нажата ли левая кнопка мыши, если нажата, то проверяете в какой области экрана(т.е. с каким пунктом меню)находится в данный момент указатель. В зависимости от положения выполняете нужную Вам ф-цию. Как отследить статус см. во вложении, остальное см. в почтовом ящике.
Приложение:
Ответ отправлен: 15.06.2003, 19:49
Отправитель: Tigran K. Kalaidjian
Отвечает _vt
Доброе время суток, Alexey!
Работа с мышью идет через прерывание 33h. Смотри функции этого прерывания в справочниках...
---===*** E-Man 1.2 - Powerful toy***===---
Ответ отправлен: 16.06.2003, 19:39
Отправитель: _vt
Отвечает St
Привет, Alexey!
У меня есть пример, моя старая незаконченная программа - попытка сделать досовский редактор: http://st23.narod.ru/MAKE.ZIP (почему-то хочет именно большими буквами)
Можете попытаться понять что-нибудь (я тогда только учился, так что наверняка много не самых лучших решений). Работают только 3 меню (и на нажатие, и на нажатие, протаскивание и отпускание), а в них пункты - выход и открыть... (и еще квадратик в верхнем левом углу)
Надеюсь что вы возьмете оттуда только сам алгоритм.
St
Ответ отправлен: 17.06.2003, 13:12
Отправитель: St
Отвечает Lynx
Здравствуйте, Alexey!
Я тут давно писал одному парню по той же самой проблемме, поэтому просто переправляю это письмо тебе.
Ответ отправлен: 18.06.2003, 16:41
Отправитель: Lynx
Отвечает Ayl
Приветствую Вас, Alexey!
Мышь работает через интерфейс 33-го прерывания. У тебя должен быть подключен драйвер мыши (если ты будешь тестироваться под чистым DOS'ом, под виндами он и так работает). Вначале инициализируешь мышь (AX=0/int33h).
Курсор мыши выключен и находится в центре экрана. Ну а далее - как фантазия позволит. Например, отслеживаешь нажатия на кнопки и проверяешь текущую позицию мышки. Если в нужной области - активируешь пункт меню.
Ответ отправлен: 16.06.2003, 13:46
Отправитель: Ayl
Вопрос № 3480 |
Уважаемые эксперты, не могли бы вы подсказать где я могу найти материал о всех прерываниях и функциях DOS!!!
Вопрос отправлен: 15.06.2003, 17:15
Отправитель: Ujin (twixt@mail.nnov.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ramzes
Здравствуйте, Ujin!
Поищи TechHelp
Ответ отправлен: 16.06.2003, 17:39
Отправитель: Ramzes
Отвечает _vt
Приветствую Вас, Ujin!
http://www.pobox.com/~ralf
---===*** E-Man 1.2 - Powerful toy***===---
Ответ отправлен: 16.06.2003, 19:39
Отправитель: _vt
Отвечает Tigran K. Kalaidjian
Приветствую Вас, Ujin!
Список прерываний Ральфа Брауна:
http://www-2.cs.cmu.edu/~ralf/files.html
Ответ отправлен: 15.06.2003, 20:16
Отправитель: Tigran K. Kalaidjian
Отвечает Maverick
Доброе время суток, Ujin!
Ищи в интеренете список прерываний Ральфа Брауна, проблем не возникнет.
Ответ отправлен: 16.06.2003, 04:59
Отправитель: Maverick
Отвечает Дмитрий
Добрый день, Ujin!
Справочник Ральфа Брауна. Ссылок в поисковиках - море.
Ответ отправлен: 18.06.2003, 09:01
Отправитель: Дмитрий
Отвечает baldr
Добрый день, Ujin!
В принципе, на моем сайте http://www.dospage.by.ru есть справочник прерываний. Но он немного староват, хотя тебе хватит. :)
А вообще, таблица прерываний Ральфа Брауна рулит!
Ответ отправлен: 16.06.2003, 10:07
Отправитель: baldr
Отвечает Lynx
Доброе время суток, Ujin!
Последний раз я видел на www.codenet.ru
Ответ отправлен: 18.06.2003, 16:41
Отправитель: Lynx
Отвечает Bob Johnson
Приветствую Вас, Ujin!
Ralf Braun Interrupt List... :)
* EMan1.3: ---===*** The Eternal Power ***===---
Ответ отправлен: 16.06.2003, 20:33
Отправитель: Bob Johnson
Вопрос № 3481 |
Народ, помогите с описанием как разложит звук на спектр я плохой математик (мягко сказать) надо на ассемблере для motorola hc11 и под builder 6 но самое главное описание как это делается исходники есть но по исходникам просто не доходит.
Вопрос отправлен: 15.06.2003, 17:23
Отправитель: Роман Окульский (okulski@cheroil.irknp.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Knignick
Приветствую Вас, Роман Окульский!
С точки зрения нахождения спектра неважно что за сигнал: звук или не звук. Все делается при помощи преобразования Фурье, конеретнее - дискретного преобразования Фурье (DFT) и, как правило, применяется один из вариантов его быстрой(оптимизированной) реализации - быстрое преобразование Фурье (FFT). Очень просто и доходчиво про все это написано в книге "Руководство программиста по работе со звуком" Тима Кинтцеля. В кратце логика DFT такая: значения отсчетов сигнала умножаются на значения отсчетов синусоиды определенной частоты(w) и произведения складываются. Чем больше сумма - тем больше вклад (амплитуда) гармоники с частотой w в исходном сигнале. Перебирая диапазон w - получаешь спектр. А FFT - просто позволяет оптимизировать вычисления.
Ответ отправлен: 15.06.2003, 18:56
Отправитель: Knignick
Отвечает Bob Johnson
Приветствую Вас, Роман Окульский!
С помощью рядов Фурье. БПФ (быстрое преобразование Фурье) я тебе по памяти не смогу написать, но принцип такой: пусть f(x) - исходная функция, тогда
a(w) = int (0, t) (cos (wt)*f(x))
b(w) = int (0, t) (sin (wt)*f(x))
здесь w - частота = 2*пи*f, a(w) и b(w) - амплитуда синусоидальных и косинусоидальных составляющих гармоники частоты w в функции f(x). Полная амплитуда А(w) = sqrt (a(w)^2 + b(w)^2).
int (0, t) - интеграл, определенный, от 0 до t. Тебе надо будет брать какой-либо отрезок (0, t) (его размер определяется наименьшей частотой, которую требуется отловить) и вычислять интеграл переодически. cos (wt) - косинус и т.д.
Но раз тебе надо это реализовывать, подойдет только БПФ, т.к. оно значительно менее ресурсоемко, чем обычное преобразование Фурье.
* EMan1.3: ---===*** The Eternal Power ***===---
Ответ отправлен: 16.06.2003, 20:33
Отправитель: Bob Johnson
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (36) C / C++ (27) Perl (5) Builder / Delphi (17) Pascal (28) Basic / VBA (9) Java / JavaScript (11) PHP (5) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (30) Windows NT/2000/XP (25) "Железо" (19) Поиск информации (13) |
Администратору Windows NT/2000/XP (12) Linux / Unix (6) |
Юристу Гражданское право (7) Семейное право (3) Трудовое право (4) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А. |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||