Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 606
от 03.08.2003, 10:50
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3840 Отправлено ответов: 11279 Активность: 293.7 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 124.05 URL: Методы оптимизации работы ПК [Подробней >>] |
Евгений Иванов Статус: Опытный Общий рейтинг: 143.19 URL: Super Assembler Software Телефон: +7 905 6601206 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.04 URL: Программирование [Подробней >>] |
getoff Статус: Начальный Общий рейтинг: 114 [Подробней >>] |
Andrew Vext Статус: Профессиональный Общий рейтинг: 105.02 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 107.59 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
Eugene Статус: Профессиональный Общий рейтинг: 106.82 URL: мощный файловый архив [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.33 [Подробней >>] |
Илья Статус: Опытный Общий рейтинг: 103.55 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 111.64 [Подробней >>] |
Дмитрий Статус: Профессиональный Общий рейтинг: 124.85 [Подробней >>] |
Алексей Статус: Начальный Общий рейтинг: 104.42 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 120.67 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3807. Доброго дня и ночи всем, сидящим за компом! Чем дольше живу, тем обширнее появляются вопросы: 1) в В... (ответов: 2)
Вопрос № 3808. Здраствуите уважаемые експерты! Не могли бы вы подсказать, где можно почитать как работать с сетью н... (ответов: 2)
Вопрос № 3809. Доброго времени суток а как узнать, что цвет№1 ближе к цвету№2, чем к цвету№3. например №1 ргб: 100... (ответов: 7)
Вопрос № 3811. Доброго времени суток в продолжении воппроса №3809(про сходство цветов) а если определять схожесть к... (ответов: 2)
Вопрос № 3812. спасибо за ответы, но еще два вопроса 1.а когда посчитал пропорции, ближайшим цветом будет тот, у ко... (ответов: 1)
Вопрос № 3813. Доброго времени суток ув. эксперты!!! У меня тут вот какой вопрос: 1. как можно реализовать задержку... (ответов: 6)
Вопрос № 3815. Есть маленькая проблемка, решила освоить ASSEMBLER для себя лично, но дорой папаша полгода назад (бе... (ответов: 7)
Вопросов: 7, ответов: 27
Вопрос № 3807 |
Доброго дня и ночи всем, сидящим за компом!
Чем дольше живу, тем обширнее появляются вопросы:
1) в Вынь-ДОС существуют Windows Messages, при появлении которых прога выполняет те или иные действия. А как построена такая система в Линуксе? Просто заинтересовал вопрос о кроссплатформенных прогах, а как оно там устроено -не знаю.
2) если есть у кого инфа по программированию портов, желательно с привязкой к tasm'у, киньте пожалуйста (только если что, киньте в мыло, а то у меня здесь firewall стоит на закачку файлов с инета - ссылки не пойдут)
На сегодня хватит, всем спасибо :)
Вопрос отправлен: 28.07.2003, 14:22
Отправитель: Ренат (renatka_f@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Здравствуйте, Ренат!
По программированию портов мной написана статья. Качайте по адресу: http://kalaidjian.narod.ru/proekt.rar
Документ запакован WinRAR2.8
Если у Вас есть почта, но нет выхода в Internet, то пользуйтесь почтовыми файлроботами.
Например сейчас хорошо работает робот
webgate@vancouver-webpages.com
Чтобы запросить файл, напишите пустое письмо по этому адресу, а в поле Subject:
get [аддр]
Где [аддр] - полный адрес страничкифайла.
Если возникнут вопросы - пишите на kalaidjian@pochtamt.ru
Ответ отправлен: 28.07.2003, 16:35
Отправитель: Tigran K. Kalaidjian
Отвечает Евгений Иванов
Добрый день, Ренат!
Порты:
А чего там - out dx, al; in al, dx!
А конкретней укажи, какое устройство!
Ответ отправлен: 30.07.2003, 01:43
Отправитель: Евгений Иванов
Вопрос № 3808 |
Здраствуите уважаемые експерты!
Не могли бы вы подсказать, где можно почитать как работать с сетью на асме. И если можно с примерами.
Заранее благадарен!
Вопрос отправлен: 28.07.2003, 20:36
Отправитель: Kislik
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Kislik!
MSDN - Windows Socket API, функции: socket, send, recv, bind, accept ...
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 29.07.2003, 13:07
Отправитель: Bob Johnson
Отвечает getoff
Приветствую Вас, Kislik!
посмотрите www.wasm.ru там есть практически ВСЕ!
Ответ отправлен: 31.07.2003, 22:37
Отправитель: getoff
Вопрос № 3809 |
Доброго времени суток
а как узнать, что цвет№1 ближе к цвету№2, чем к цвету№3. например
№1 ргб: 100 100 100
№2 120 120 120
№3 100 100 150
если сложить разницы(abs) между каждой из составляющих, то получается от №1 к №2 = 60, а от №1 к №3 = 50. Т.е. получается, что №1 ближе к №3, чем к №2. Но ведь на глаз видно, что №1 и №2 почти одинаковые.
Тогда как правильно определить сходство цветов ?
спасибо
ЗЫ: нужно для того, чтобы из 16 цветов оставить, например, только 5; для этого надо заменить "лишние" цвета одним из "нужных"
Вопрос отправлен: 29.07.2003, 14:32
Отправитель: вова
[Следующий вопрос >>] [Список вопросов]
Отвечает Andrew Vext
Приветствую Вас, вова!
В простейшем случае сравнивается максимальная разница между составляющими для номера 2 это 20, а для номера 3 - 50. Таким образом номер 3 почти в два раза более отличается от 1, чем номер 2.
Ответ отправлен: 29.07.2003, 14:45
Отправитель: Andrew Vext
Отвечает Gibbel
Здравствуйте, вова!
Вычисляй среднее арифметическое...
Ответ отправлен: 29.07.2003, 14:50
Отправитель: Gibbel
Отвечает Eugene
Здравствуйте, вова!
А как ты определил, что №1 и №2 почти одинаковые, мне на глаз видно, что №1 и №3 одинаковые. Вобщем нужен иной алгоритм поиска похожести, чем у тебя. Но я бы предложил другой путь, т.к. у тебя всего 16 цветов, то можно составить таблицу соответствия. И по ней уже выбирать нужные цвета.
Ответ отправлен: 29.07.2003, 15:00
Отправитель: Eugene
Отвечает Ayl
Приветствую Вас, вова!
Помнится, я считал отношения r/g и g/b
Для цветов 1 и 2 эти отношения равны 1 (ну, и, соответственно, отношение r/b = 1), а для цвета 3 r/g = 1, но g/b = 2/3. Но погрешность у меня тоже получалась, скажем, голубой часто переходил в зеленый. Мне тогда нужно было построить таблицу индексов в палитре для закраски методом Фонга (или Гуро, сейчас уже плохо помню). Но в целом цвета более-менее подходили...
Ответ отправлен: 29.07.2003, 15:05
Отправитель: Ayl
Отвечает Илья
Добрый день, вова!
А если привязываться к B&W???
Там такая формула:
Y = 0.3*R + 0.59*G + 0.11*B
Правда не совсем уверен,что это можно применить.
Ответ отправлен: 30.07.2003, 00:56
Отправитель: Илья
Отвечает Евгений Иванов
Добрый день, вова!
есть функции в Win32:
The GetNearestColor function returns a color value identifying a color from the system palette that will be displayed when the specified color value is used.
COLORREF GetNearestColor(
HDC hdc, // handle of device context
COLORREF crColor // color to be matched
);
The GetNearestPaletteIndex function retrieves the index for the entry in the specified logical palette most closely matching a specified color value.
UINT GetNearestPaletteIndex(
HPALETTE hpal, // handle of logical color palette
COLORREF crColor // color to be matched
);
Ответ отправлен: 30.07.2003, 01:43
Отправитель: Евгений Иванов
Отвечает getoff
Приветствую Вас, вова!
для определения близости цветов RGB модель не подходит совсем, он хорошо подходит именно для покомпонентного синтеза цветов, Человеческий глаз не умеет отличать красные синие и зеленые компоненты друг от друга в одном цвете....но он очень чувствителен к интенсивности цвета. Это приминяется в разного рода компрессиях (JPEG например) с потерями. Были разработаны специальные модели учитывающие эти особенности. Например YUV (используется в JPEG).
Y - интенсивность
U, V - цветность. К сожалению я не помню формулы для перевода из RGB в YUV.
Эти цветовые модели и надо использовать для сравнения цветов. Причем интенсивность имеет наибольшую значимость!!!!
Ответ отправлен: 31.07.2003, 22:33
Отправитель: getoff
Вопрос № 3811 |
Доброго времени суток
в продолжении воппроса №3809(про сходство цветов)
а если определять схожесть как = sqrt ( sqr(Red#1-Red#2) + sqr(Blue#1-Blue#2) + sqr(Green#1-Green#2) );
т.е. осьХ это красный цвет и т.д.
этим можно добиться достаточно точного определения схожести ?
спасибо
Вопрос отправлен: 29.07.2003, 17:53
Отправитель: вова
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Добрый день, вова!
Пойми, что тебя интересует не столько "расстояние" от одного цвета до другого, сколько пропорции соответствующих компонент.
Например, цвета C1 = (255, 0, 0), C2 = (0, 255, 0), C3 = (0, 0, 255) будут иметь одинаковые расстояния друг от друга. При этом ты можешь посчитать, что раз C2 и C3 находятся на одинаковом расстоянии от C1, то они похожи. Аналогично и с 2-мя другими парами ((C1 и C2 относительно C3) и (C1 и C3 относительно C2)). Но на самом деле C1 - это чистый красный цвет, C2 - чистый зеленый и C3 - чистый синий. Похожими их назвать достаточно трудно. В случае же пропорций у тебя получится:
C1 = (#0, #0, 0), C2 = (0, #0, #0), C3 = (#0, 0, #0), где #0 обозначает деление на 0. В результате, т.к. соответствующие пропорции не равны, то все 3 цвета различны.
Ответ отправлен: 29.07.2003, 18:25
Отправитель: Ayl
Отвечает Bob Johnson
Здравствуйте, вова!
Получается, что да...
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 30.07.2003, 22:33
Отправитель: Bob Johnson
Вопрос № 3812 |
спасибо за ответы, но еще два вопроса
1.а когда посчитал пропорции, ближайшим цветом будет тот, у которого максимальная разница по пропорциям будет меньше? или как-то по-другому ?
2.можно привести пример, где вариант с подсчетом расстояния не будет работать? (потомучто приблизить зеленый к красному и к синиму равноценно)
Вопрос отправлен: 29.07.2003, 21:00
Отправитель: вова
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Приветствую Вас, вова!
1. Ну давай подумаем. Что такое цвет (r,g,b). Это некоторая точка в пространстве (R,G,B), с ограничениями по каждой координате от 0 до 255 (например). Причем целочисленными. Т.е. все множество точек находится в кубе с ребром 255 единиц, расположенном в первом октанте пространства и имеющего центр координат своей вершиной.
Предположим, что в этом кубе у нас зафиксировано n точек - основная палитра. И имеется еще k точек, которые надо привести к этой палитре.
Попытка использовать для поиска подходящего цвета обычное расстояние приводит к поиску просто ближайщей точки - а это не всегда верный вариант (см. п.2).
Каков геометрический смысл пропорций? Каждая пропорция определяет прямую, проходящую через заданную точку и уентр координат (точка (0,0,0) может считаться подходящей для любой пропорции). Т.о. мы имеем n прямых, определяющих нашу палитру (случаи, когда 2 и более прямых из нашей основной палитры совпадают, рассматривать не будем, так как одну из них легко можно исключить).
Ближайшая из этих прямых к нашей точке и будет искомой пропорцией. Формулу перпендикуляра из заданной точки к заданной прямой, проходящей через начало координат, надеюсь, сам выведешь. Далее нужно найти длину этого перпендикуляра и из всех выбрать наименьший.
2. Ну, например, такие цвета:
C1 = (64, 0, 0)
С2 = (255, 255, 0)
C3 = (64, 64, 0)
D(a,b)=sqrt((a(r)-b(r))^2+(a(g)-b(g))^2+(a(b)-b(b))^2), где x(r),x(g),x(b) соответственно красная, зеленая и синяя составляющие цвета.
Пусть исходные цвета - С1 и С2 и мы пытаемся найти соответствие для цвета C3. Тогда:
D(C1,C3)=sqrt((255-64)^2+(0-64)^2)=sqrt(195^2+64^2)
D(C2,C3)=sqrt((255-64)^2+(255-64)^2)=sqrt(195^2+195^2)
Второе расстояние явно больше. Поэтому соответствующим цветом для C3 будет неправильно принят C1. Вместо правильного C2.
Ответ отправлен: 29.07.2003, 22:04
Отправитель: Ayl
Вопрос № 3813 |
Доброго времени суток ув. эксперты!!!
У меня тут вот какой вопрос:
1. как можно реализовать задержку, ну например 5 мкс (и меньше), причем, чтобы она не зависила от частоты процессора, естественно под windows'ы ???
2. И еще, есть ли у кого драйвер (wdm, желательно с исходником) для доступа к LPT порту, под win2k ???
---
Заранее благодарен!!!
Вопрос отправлен: 29.07.2003, 22:39
Отправитель: Andrey
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Andrey!
1. Самый бестовый вариант - это вначале узнать частоту процессора с помощью комбинации rdtsc + QueryPerformanceCounter/QueryPerformanceFrequency, а затем уже выполнять задержку с rdtsc исходя из вычисленной частоты процессора. Точность вычисления частоты за 1 секунду составляет порядка 99,99% (ошибка - десятки или единицы килогерц), так что 5 мкс получишь без проблем, только правда процессор будет на 100% загружен.
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 30.07.2003, 22:34
Отправитель: Bob Johnson
Отвечает Илья
Добрый день, Andrey!
1) Возможно, можно... используя таймер ядра (IMHO)
2) Если драйвер режима ядра (а не wdm), то возможно можно :)
b.i@date.by
Ответ отправлен: 30.07.2003, 01:01
Отправитель: Илья
Отвечает Евгений Иванов
Добрый день, Andrey!
1. Есть какой-то точный таймер в MultiMedia библиотеке!
2. Так ведь в DDK есть примеры, по моему...
Ответ отправлен: 30.07.2003, 01:42
Отправитель: Евгений Иванов
Отвечает Tigran K. Kalaidjian
Добрый день, Andrey!
1. 5мкс ИМХО никак. Через таймер можно не менее 55мкс. Как? Читайте в архиве рассылки.
2. Wdm-драйвер с исходниками и примерами на ассемблере под WinNT на LPT у меня есть. Пишите на kalaidjian@pochtamt.ru
Ответ отправлен: 30.07.2003, 18:03
Отправитель: Tigran K. Kalaidjian
Отвечает Dark_Lord
Приветствую Вас, Andrey!
функция Sleep (kernel32.dll) , параметр один, время задержки в милисекундах!
Ответ отправлен: 30.07.2003, 18:41
Отправитель: Dark_Lord
Отвечает getoff
Добрый день, Andrey!
По моему это невозможно....хотя ....
1) Узнать частоту процессора
2) Поставить своему приложению оч. высокий приоритет
3) вычислить коффициент k=time(sek)*CPU_freq(Hz)
time - нужное время в секундах; CPU_freq(hz) - частота процессора в герцах
4) В цикле вычислять D=RDTSC(n)-RDTSC(1) и проверять на равенство k
ИМХО слишком геморно....и не точно.....
Ответ отправлен: 31.07.2003, 22:44
Отправитель: getoff
Вопрос № 3815 |
Есть маленькая проблемка, решила освоить ASSEMBLER для себя лично, но дорой папаша полгода назад (без моего ведома, заметте) сменил 98 на изв... милениум, а я его просил? НЕТ, а мучаюсь я, так как он за комп не садился ни разу!!! А проблема следующего прана, не работает Tasm.exe (masm.exe)? КАК это победить. и dos отсутствует на прочь.
Вопрос отправлен: 30.07.2003, 10:48
Отправитель: war
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, war!
> а я его просил
А мы знаем?
> НЕТ, а мучаюсь я, так как он за комп не садился ни разу!!
Поменяй назад. Вообще лучше ХР поставь. В эмуляции доса под ХР прекрасно работает как tasm, так и tasm32.
> А проблема следующего прана, не работает Tasm.exe (masm.exe)
Он должен работать. Видимо, какого-то файла не хватает. Или что-то еще (может версия тебе поновей нужна? Сходи на wasm точка ru). Напиши, что он тебе хотя бы выдает на экран.
> и dos отсутствует на прочь
Это не совсем так. Ты можешь запустить командную стоку или far и уже оттуда выполнять нужные тебе приложения.
* EMan1.5: ---===*** The hell we've created ourselves ***===---
Ответ отправлен: 30.07.2003, 22:34
Отправитель: Bob Johnson
Отвечает Ayl
Доброе время суток, war!
Не, ну ты не прав! Я са на работе под тысячелетием сижу, матерюсь иногда, конечно, но проблем с асмом нету. Поставь себе Far Manager и запускай из-под него. Режим эмуляции DOS'а работает нормально. Вот только переменные среды выставлять надо через реестр... :-(
А может подробнее написать, что значит не работает?
Ответ отправлен: 30.07.2003, 11:08
Отправитель: Ayl
Отвечает Дмитрий
Доброе время суток, war!
Странно! У меня тоже WinME и все работает. Масм какой версии? Если 6.12 или что-то около этого, то надо дописать в system.ini в секцию [386Enh] строчку device=dosxnt.386 Пашет как зверь!
Ответ отправлен: 30.07.2003, 11:58
Отправитель: Дмитрий
Отвечает Евгений Иванов
Здравствуйте, war!
Ассемблер можно изучать хоть в 98, хоть в 95, хоть в ME, хоть в 2000, хоть
в XP.
У меня вообще раньше был Спектрум и я по сути Ассемблер изучал сначала на нём
и ЕГО (Z80) Ассемблер.
Перейти на IBM мне стоило пару секунд, так как процесс я уже понимал, а
запомнить, что вместо LD надо писать MOV - ерунда!
Есть tasmx.exe - попробуй исполовать его - он 16 битный защищённый режим, по
моему. Там нужно RTM.EXE и DPMI16BI.OVL.
А лучше сразу начни 32-битный изучать, там небольшие добавки к 16-битному.
Вроде туго идёт ввод IA-64, но когда-нибудь и он придёт (хотя я думаю -
это глупо; можно гнаться за битностью вечно - 128, 256 ... а дальше?).
Да и вряд ли дальше 64 или 128 пойдёт...
Так что изучай и пиши 32 битный режим, потому что 8 и 16-битный режимы
были временными и ушли в небытиё!
А ещё обрати внимание на FASM и NASM.
И HLA ещё есть - интересная разработка!
Ответ отправлен: 30.07.2003, 12:19
Отправитель: Евгений Иванов
Отвечает Алексей
Здравствуйте, war!
Я думаю, что никак! Из МЕ его по-моему полностью вырезали!
Выход: поставить 98 или (что лучше) 2000!
Ответ отправлен: 30.07.2003, 12:24
Отправитель: Алексей
Отвечает Tigran K. Kalaidjian
Доброе время суток, war!
Поставьте в дополнение Win98 и загружайте на выбор ту ОС, какую хотите.
Эмуляция DOS отсутствовать не должна. Найдите на диске command.com и запустите его.
Можно также загружаться с системной дискетыдиска и не мучаться.
Если есть вопросы - пишите на kalaidjian@pochtamt.ru
Ответ отправлен: 30.07.2003, 17:50
Отправитель: Tigran K. Kalaidjian
Отвечает _vt
Приветствую Вас, war!
Варианты решения проблемы:
1) Работал с милениумом мало, но по-моему DOS там в достаточном для TASM количестве... Что конкретно не так с TASM?
2) Без ведома папы, поставить 98 :--)))
---===*** E-Man 1.4: I really need in 1.5... Help me!!!***===---
Ответ отправлен: 31.07.2003, 10:54
Отправитель: _vt
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (35) C / C++ (24) Perl (3) Builder / Delphi (20) Pascal (23) Basic / VBA (13) Java / JavaScript (10) PHP (9) Криптография (8) WinAPI (14) |
Пользователю Windows 95/98/Me (48) Windows NT/2000/XP (48) "Железо" (40) Поиск информации (27) |
Администратору Windows NT/2000/XP (26) Linux / Unix (11) |
Юристу Гражданское право (10) Семейное право (6) Трудовое право (7) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||