Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 595
от 20.07.2003, 08:20
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 3735 Отправлено ответов: 10964 Активность: 293.5 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Теоретик Статус: Доверительный Общий рейтинг: 117.44 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 112.09 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Евгений Иванов Статус: Доверительный Общий рейтинг: 134.16 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.13 URL: Программирование [Подробней >>] |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 122.22 URL: Методы оптимизации работы ПК [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 121.75 [Подробней >>] |
Hangatyr Статус: Опытный Общий рейтинг: 114.4 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 113.64 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.21 [Подробней >>] |
Lynx Статус: Опытный Общий рейтинг: 119.3 Телефон: (8442) 750522 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 121.61 URL: мой сайт [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 128.25 URL: Эхоконференция по вирмейкингу Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 107.67 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Andrew Vext Статус: Профессиональный Общий рейтинг: 105.16 [Подробней >>] |
Andy Статус: Доверительный Общий рейтинг: 105.64 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 107.67 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3704. Добрый день! Регулярно читаю несколько рассылок, но рассылку по АСМу считаю самой компетентной, и по... (ответов: 5)
Вопрос № 3705. Здраствуйте все! Попробовал я скомпилять код, опубликованный в одной из прошлых рассылок (у кого-то ... (ответов: 4)
Вопрос № 3706. Отвечаю на ответ: > Эксперт: Ayl > В-третьих, при выполнении обработки прерывания (аппаратного, напр... (ответов: 2)
Вопрос № 3707. Здравствуйте. У меня проблема изучал асм для DOS и хотел программу для треннировки написать. Решил с... (ответов: 2)
Вопрос № 3708. Здравствуйте. У меня проблема изучал асм для DOS и хотел программу для треннировки написать. Решил с... (ответов: 3)
Вопрос № 3709. мой вопрос заключается в следующем: мне нужно скомпилить программу на ассемблере в машинный код,но т... (ответов: 12)
Вопрос № 3710. Уважаемые,эксперты! Подскажите как запретить запуск 2-ого экземпляра программы?... (ответов: 6)
Вопрос № 3711. Как из под Дос Бокса (98 винда)запустиь Excel как Ole объект и управлять им. Т.е. задача выполняется... (ответов: 2)
Вопросов: 8, ответов: 36
Вопрос № 3704 |
Добрый день!
Регулярно читаю несколько рассылок, но рассылку по АСМу считаю самой компетентной, и поэтому свой вопрос не по теме (уж извините) задаю здесь:
Уважаемые! Ну объясните мне пожалуйста:
1) чем отличается интернетовский СПАМ от рекламы на телевидении с юридической и этической точек зрения
2) верно ли мнение "ненужные мне письма я еще могу проигнорировать (в т.ч. техническими средствами), а уж от рекламы мне никак не избавиться"
3) не является ли т.н. "борьба со спамом" со стороны итернетовской обществености формой самоудовлетворения, выливающейся в тот же спам
4) кто же реально продвигает законы о наказании спамеров (ну не поверю что общественность) например в США. За чьи интересы (или против чьих) на самом деле борются эти законы
(ну что то с трудом верится что за интересы пользователей интернета)
5) почему энергия этих же борцов не распространяется на борьбу с таким же спамом, но на телевидении (радио)
6) ну в чем я неправ проводя аналогию между интернетовским спамом и рекламой на телевидении ?
7) Ну и действительно: фактический запрет (или полное прикрытие спама техническими средствами) не ограничит ли права человека на распространение/получение информации ?
Немного о себе: к спамерам не отношусь, спам получаю, если есть время(!) с интересом(!) проглядываю и спокойно удаляю.
Штук 30 адресов внес в "черный список", помогло.
Иногда(!) из этих писем узнаю что то новенькое, чего со мной ни разу не было при просмотре 'ненавязчивой' рекламы в телевизоре.
Благодарю за внимание, надеюсь на ответ.
Вопрос отправлен: 15.07.2003, 09:42
Отправитель: PostM
[Следующий вопрос >>] [Список вопросов]
Отвечает Теоретик
Доброе время суток, PostM!
Первое, что хочу пожелать - подпишитесь на рассылку электронного журнала
Спамтест (поищите на Subscribe.ru) - он посвящён именно вопросам спама
и борьбы с ним. По крайней мере, там это не будет оффтопиком.
Хочу ответить на ваш вопрос. Для сокращения буду называть телевизионную рекламу
телеспамом, а интернетовскую - е-спамом (типа, электронный).
Названия, само собой, крайне спорные и двусмысленные (телевизор - тоже электроника,
а интернет - тоже средство телекоммуникации), но остановлюсь на них.
Моя основная задача, как любителя поспорить (точнее придумывать контраргументы)
заключается в том, чтобы доказать, что телеспам, хоть и мерзость, но гораздо
лучше е-спама.
Итак, начнём аргументацию.
1. Телеспамеры платят за телепрограммы и фильмы, которые я смотрю. Жаль,
что они ещё и за электричество не платят. Если не хотите видеть телеспам -
подключитесь к кабельному или спутникову телевиденью и платите за него сами.
Е-спам же не за что не платит. За выкачивание е-спама с сервера на свой
компьютер плачу я сам. Даже если я заимею платный почтовый ящик, это не
спасёт меня от е-спамеров.
Итак, телеспам экономит нам деньги, е-спам - тратит.
2. Телеспам бесспорно раздражает, особенно, когда на самом интересном месте
фильма врывается дурная тётка с диким криком: "Ну каком масле вы опять жарите!"
Но часто я его жду: когда нужно что-то сделать, но не можешь оторваться от
фильма. В нашей семье, когда кто-то кого-то пытается оторвать от телевизора,
получает ответ: "Подожди, когда реклама начнётся". Реклама - это возможность
оторваться от телевизора, расслабить глаза, сходить на кухню за едой. При
просмотре остросюжетного триллера, который постоянно держит в напряжении,
во время рекламы можно сходить в туалет помочится. Я думаю, многие согласятся,
что напряжённые фильмы способствуют этому процессу, но трудно оторваться
от экрана в середине действия. Реклама позволит спасти ваше здоровье,
в частности мочевой пузырь и почки.
А что же е-спам? Е-спам только усложняет сортировку писем, удерживает дольше
не нужно перед монитором. Если писем очень много, то несложно ошибиться
и вместо рекламного предложения от службы ритуальных услуг стереть письмо
от любимой девушки с указанием места и времени ближайшей встречи.
Поэтому смотреть надо очень внимательно, тратя своё время, терпение
и последние остатки зрения. Не спорю, можно настроить правила автоматической
сортировки, эта возможность есть почти в каждом почтовом клиенте.
Но это не панацея. Если вы редко с кем том переписываетесь, да и плохо
представляете сегодняшний адрес абонента, то отдельную папку и правило
для него создать не получится. В результате письмо от друга, которого вы
не видели пять лет и который
в этом самом письме интересуется, не хотите ли вы приехать к нему в Канаду
(или Австралию) за его счёт, потеряется в потоке спама.
Итак, телеспам дарит нам время и здоровье. Е-спам - только отбирает.
3. Телеспам - прекрасное поле для шуток и анекдотов. КВНщики просто
обожают рекламу, ведь это самый лучший объект для
создания смешных и всем понятных шуток. Да и простые смертные любят
остроумно вставить в беседе слоган из рекламы, типа: "Попки
теперь стали ещё здоровее, чем раньше!".
А кто-нибудь видел шутки про е-спам? Лично я - нет. Зато я видел агонию человека,
который решил заказать халявную телефонную карту, а вместо этого
загубил себе свой любимый почтовый ящик. Он дошёл до состояния аффекта,
а так как под рукой спаммеров не было, он начал бросаться на мирных
и невинных граждан.
В итоге, телеспам дарит нам смех и возможность блеснуть остроумием,
а е-спам приносит слёзы и вызывает вспышки агрессии против случайных людей.
Мне кажется, объяснения у меня получились достаточно сумбурные, но разумеется у меня
есть оправдание - всё-таки уже час ночи, а день у меня был не из лёгких.
Однако общий смысл, я думаю, понятен.
Надеюсь, это совершенно левая дискуссия не будет продолжатся, а тихо усохнет.
С уважением, Теоретик.
Ответ отправлен: 15.07.2003, 22:15
Отправитель: Теоретик
Отвечает baldr
Здравствуйте, PostM!
Никаких законов касательно интернета пока не существует, особенно в нашей стране. Тем более, что их трудно применять. Так что наказать уголовно (или еще как) спамера ты не сможешь. Можно, конечно, попробовать поискать его IP-адрес, вычислить его сервак и завалить, но вряд ли это поможет. При рассылке писем в поле отправителя вставляется произвольный адрес - это позволяет спамерам бороться с теми же фильтрами. Кстати, спам бывает случайный, который шлют роботы, откопавшие твой адрес в каком-то форуме, где ты его по неосторожности оставил, а бывает еще такой спам, на который ты случайно сам подписался. Например, на каком-нибудь американском сайте кликнул баннер, чтоб купить чудо-вело-тренажер, ввел свой адрес и получил посылку, а вдобавок занес свой майл в спам-лист. От такого отписаться немного легче - они, вроде, с фильтрами не борются.
Быи какие-то программы, которые позволяют отправить письмо от якобы почтового робота, что такой ящик не существоет - типа это помогает исключить ящик из спам-листов. Но когда обратный адрес подменяется - такое не проходит.
Вообще, со спамом бороться бесполезно... :-( Слишком сложные фильтры могут не пропустить письмо от друга, написавшего с другого ящика, а слишком простые обходятся...
Его надо терпеть. Вообще, я рекомендую завести себе несколько ящиков. Один-два личных, адрес которых давать только для переписки с друзьями, а остальные - один для рассылок, второй для указания на форумах, третий - для подписки на сомнительные рассылки, четвертый - для очень сомнительных... :) Я обычно так и делаю, так что в случае большого потока спама можно переадресовать нужные рассылки на новый ящик, а старый - удалить.
Хотя, если кто-то изобретет способ реальной и эффективной борьбы со спамом - я буду только ЗА.
Ответ отправлен: 15.07.2003, 11:09
Отправитель: baldr
Отвечает Евгений Иванов
Доброе время суток, PostM!
Вот твой вопрос и есть тот самый шпрот! :)
То есть, послан не туда, не по теме, без согласия по сути получателя.
Если мне хочется отвечать на такие вопросы, я подпишусь на соотв. рассылку...
> Иногда(!) из этих писем узнаю что то новенькое
Вот поэтому и отвечаю...
1. ценой :)
2. шпрот я получаю мало, ОЧЕНЬ мало. Всё зависит от человека. Вот мой друг
каждый раз получает письма через ручной выбор, какие получать, какие
удалить и т.п. Я попробовал, но через пяток раз мне это надоело...
Это как бы запрячь себя в повозку вместо лошади. Он не понимает, что
на 99% так называемый шпрот - это не спам. От него МОЖНО отписаться!
Что я и делаю и больше ЭТО ко мне не приходит! А он так и будет день из
дня по ручному их отфильтровывать, хотя можно было бы принять это письмо и
там ОБЯЗАТЕЛЬНО написано, как отписаться! Если этого не будет, то это и
есть шпроты. А так это реклама. Но шпроты обычно посылаются один раз.
А что вам мешает ставить везде свой почтовый ящик вот так:
Шлите мне шпрот на Eugene.Ivanov at land.ru
Ведь собирают ящики автоматы, вот их и надо обманывать...
3. не думаю
4. всё упиреются в деньги, ну и немного в конституцию
5. а там реклама (оплаченная бешеными деньгами), а не шпрот
не хочешь, переключайся на другой канал
6. это разные вещи
7. такого не будет! Нет разделения на шпрот и обычные письма.
Будет это происходить волнами, но надо потерпеть...
Вот я недавно проверял антивирусные системы: послал другу письмо
с вложенным файлом - а там вирус. Так он его НЕ получил!
Но я этот вирус положил в архив с паролем и пароль в письме.
Всё ОК, прошёл. Конечно, это неправильно, что вирус удалили, не имеют
право, но надо тоже быть поумнее.
Я вообще предлагаю письма посылать зашифрованные в архиве и BINHEX
использовать. Ведь почовик The Bat! позволяет выполнять задачи при
получении письма, так что можно всё автоматизировать!
Ответ отправлен: 15.07.2003, 12:53
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Добрый день, PostM!
1. Тем что за то, чтобы скачать спам из почтового ящика тебе нужно платить деньги провайдеру, в то время как в телеэфире ты ничего не платишь или платишь ежемесячную плату (на кабельном ТВ), но уж никак не за время, которое ты смотришь телевизор.
2. Нет. Ненужные письма тоже довольно сложно игнорировать, т.к. ты не знаешь, что в них и как.
3. Не думаю, т.к. спам реально мешает - ты заводишь почтовый ящик для каких-либо целей (может это будет деловая переписка), а тебе туда начинает приходить всякая порнуха - ты либо отвлекаешься от дела, либо начинаешь злится на такие рассылки, так что со спамом бороться нужно.
5. см. п. 1. Т.к. он бесплатен прежде всего и его объем ограничен. Потому что, если мне не нравится то, что на каком-либо телеканале стало слишком много рекламы, я могу его легко переключить на другой и смотреть то, в то время как почтовый ящик - это уже в какой-то степени моя собственность (и переключить его я так же просто, как ТВ не могу).
6. см. п. 5.
7. Нет. На сайтах, на которые ты уже заходишь сам (вот это вполне уместно сравнить с программой на ТВ) останется реклама (платная для рекламодателя) и ты также как и посреди фильма будешь ее смотреть или больше не будешь ходить на тот сайт. А спам практически бесплатен для рассыльщика (что уже говорит об уровне этой "рекламы"!), ее может разослать почти любой.
> Иногда(!) из этих писем узнаю что то новенькое, чего со мной ни разу не было при просмотре 'ненавязчивой' рекламы в телевизоре.
Может быть, но чаще реклама в спаме - полная фигня. У меня был электронный адрес, на который приходило в день до 3 - 5 спаммерских писем - я тоже их "с интересом" просматривал и даже пробовал задавать вопросы авторам (по теме, естественно) - но ни одного ответа я не получил... Так на хрен мне это надо? Если там к тому же не реклама, а пи**еж?
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 15.07.2003, 19:53
Отправитель: Bob Johnson
Отвечает Tigran K. Kalaidjian
Здравствуйте, PostM!
ИМХО основное отличие - Интернет без спама жить может, а телевидение - нет, ибо реклама - тоже не чья-то выдумка- это средство для существования многих телевизионных передач, если нет государственного финансирования.
=> если не будет рекламы, то не будет теле-(радио-)передач.
Вообще не хотелось бы поднимать здесь эту тему, ибо заведомо ясно, что она непременно разрастётся до флейма. Людей, которые непосредственно занимались(занимаютя) проблемами спама можно найти в конференции mtu.inform
Ответ отправлен: 15.07.2003, 14:07
Отправитель: Tigran K. Kalaidjian
Вопрос № 3705 |
Здраствуйте все!
Попробовал я скомпилять код, опубликованный в одной из прошлых рассылок (у кого-то был косяк с переименованием, функция 56h). И косяк: Компиляется нормально, а линковщик выдаёт ошибку: что-то типа "Bad object file:........ 0x00000000" (не помню точно). Линковщик у меня какой-то седьмой версии, компилял в тасме.
Вопрос отправлен: 15.07.2003, 11:29
Отправитель: Ренат (renatka_f@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Теоретик
Здравствуйте, Ренат!
Такая ошибка возникает в том случае, если то, что вы подсовываете линковщику как OBJ-файл, таковым совсем не является.
Лично я сталкивался с таким в нескольких случаях.
1. Для компиляции использовал masm, а для линковки - tlink32.
Masm выдал OBJ-файл в формате COFF, а tlink32 такое не понимает, ему формат OMF надо.
2. Перепутал параметры для tlink32, в результате получилось так, будто import32.lib - это название выходного exe-шника,
а вовсе не библиотека импорта. В результате вылезла ошибка, что не были привязаны extrn-функции (разумеется - библиотеку-то он не нашёл). Кроме этого, import32.lib был ПЕРЕЗАПИСАН совершенно неработающим EXE-шником. Одним словом, загубил я себе библиотечку, сам того не заметив.
При следующей компиляции появилась как раз названная вами ошибка - ведь формат у import32.lib стал совершенно неподходящий.
3. Когда, в результате выполнения неправильно написанного батника, попытался слинковать ASM-файл. Разумеется, его формат расходится с OMF OBJ в самом первом байте (т.е. по смещению 00000000), о чём и было сообщено.
Короче говоря, внимательно посмотрите, какие obj и lib файлы вы пытаетесь линковать и правильно ли указано их местоположение в командной строке.
Вероятнее всего, кто-то из них не является OBJ-файлом или вообще левый файл подставляется линкеру в качестве библиотеки.
Ответ отправлен: 15.07.2003, 22:15
Отправитель: Теоретик
Отвечает _vt
Добрый день, Ренат!
> Линковщик у меня какой-то седьмой версии, компилял в тасме.
В пакете TASM линкер называется tlink.exe(tlink32.exe) и в лучшем случае он пятой версии, а ты используешь майкрософтовский линкер link.exe, который не понимает obj-файлы, созданные tasm.exe, у них разный формат...
---===*** E-Man 1.4 - waiting for 1.5...***===---
Приложение:
Ответ отправлен: 16.07.2003, 12:46
Отправитель: _vt
Отвечает Hangatyr
Здравствуйте, Ренат!
Это вы про вопрос № 3619, или нет? Уточняйте, пожалуйста, в следующий раз. Что касается вопроса - у меня все отлично компилится как tasm:
tasm r.asm
tlink r.obj
так и masm:
ml r.asm
На всякий случай вот мое мыло - hangatyr@centrum.cz
Ответ отправлен: 15.07.2003, 12:10
Отправитель: Hangatyr
Отвечает ASMодей
Приветствую Вас, Ренат!
Если раньше все компилировалось нормально, то значит это ошибка компилятора tasm. Решается это или заменой компилятора или поиском строки программы, которая эту ошибку вызывает. У меня такая ошибка получалась, если для 32-битного сегмента писать просто "offset метка". Путем некоторых экспериментов выяснилось, что если написать "offset сегмент:метка", то все работает нормально. Причем компилятор в обоих случаях ошибки не выдавал, а просто формировал некорректный OBJ-файл.
Ответ отправлен: 16.07.2003, 10:17
Отправитель: ASMодей
Вопрос № 3706 |
Отвечаю на ответ:
> Эксперт: Ayl
> В-третьих, при выполнении обработки прерывания (аппаратного, например,
> 9-го) при вызове происходит блокирование прерываний..
Так я это и подразумевал, что надо сбросить бит в 20h порту.
И сделать STI.
> Самым критичным мне представляется второй пункт.
А у меня подобные вещи работали, когда я сидел в ДОС!
Он ведь просил идею, как это сделать; ну очень ему ХОчется вызвать
подпрограмму изнутри..
Вот я и предложил 2 варианта и они оба работающие.
Со стеком очень забавно выходит, тут происходит как бы обма(е)н.
То есть выход из 9 прерывания происходит, но в нашу подпрограмму, а вот из
неё уже как-бы из обработчика прерывания на то место, где было прерывание.
Т.е. то, что он просил, но немного по другому...
И никаких реентабелей, потому что мы ВЫШЛИ из прерывания!!!
ВСЁ, мы вне его.
> Либо использовать возможности ЯВУ для создания потоков - они как раз
> выполняются параллельно.
У нас тут Ассемблер и ничего больше!
> Они, как это называется, нереентерабельны.
А он и не говорил ничего про такие вещи.
Он просил идею, а это уже проблема ДОС, что Билли его так криво написал...
А может этот товарищ не будет использовать эти функции, а только свои,
написанные реентабельно!
Насчёт таймера.
Представь, что мы разрешаем прерывания внутри обработчика 9-го прерывания.
Ну или только 8-е разрешаем...
Можем даже цикл сделать с проверкой кои-либо флажка.
Вот произошло 8-е прерывание.
Выполнили кои действия, сбросили флажок и возвратились опять в 9-е.
Он выходит.
Всё!
Но естественно, лучше защищённый, там это всё стандартизованно!
Вопрос отправлен: 15.07.2003, 12:54
Отправитель: Евгений Иванов (Eugene.Ivanov@land.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Доброе время суток, Евгений Иванов!
Извини, но из твоего описания нигде про разрешение прерываний и про 20-й порт не сказано. Поэтому я и написал. Но это самое простое и лежит на виду.
> вызвать процедуру и так, чтоб обработчик не ждал возврата
из процедуры а дальше выполнял свои действия?
Как понимать эту фразу? Я потому и пищу, что вопрос некорректный. Что имеется в виду - параллельное выполнение процедуры обработки прерывания и вызванной процедуры (тот вариант, который я и разобрал, обратив внимание на сложность реализации) или вариант вызова подпрограммы после отработки обработчика с возвратом в прерванную программу? Так этого можно добиться гораздо более простыми средствами.
Например, требуешь, чтобы подпрограмма завершалась не retf, а iret и в процедуре обработки прерываний просто делаешь jmp на подпрограмму. Но, ИМХО, это немного не то, что спрашивалось.
Кроме того, в твоем варианте надо как-то разобраться с регистром флагов в подпрограмме. Потому как дальняя процедура флаги не восстанавливает, значит перед возвратом это нужно сделать самому.
Насчет ЯВУ и ассемблера. Все, что можно написать на ЯВУ, можно написать и на асме! Просто в ЯВУ уже есть готовые функции для создания потоков (для мультипрограммных систем). Если есть желание это писать на асме - ради бога!
Насчет реентерабельности - я просто предупредил. На всякий случай. И в определенном контексте.
Кстати, проблема реентерабельности не в том, что мы не выполнили в обработчике аппаратного прерывания освобождение контроллера прерываний - это можно сделать хоть в его начале. А в том, что это самое аппаратное прерывание могло произойти в момент выполнения самого прерывания DOS или BIOS. А управление прерванной программе мы отдавать не собираемся вплоть до завершения работы процедуры. И если там она вдруг решит что-нибудь записать на диск, а в прерванной программе тоже производилась запись на диск - вот тут и наступят кранты.
В общем, я пытался рассмотреть проблему параллельного выполнения задач под ДОС, а ты описывал последовательный вызов процедур в обработчике прерываний. Мне кажется, что именно поэтому и возникли разногласия.
Ответ отправлен: 15.07.2003, 13:35
Отправитель: Ayl
Отвечает Bob Johnson
Здравствуйте, Евгений Иванов!
> И сделать STI.
Не надо, за тебя уже подумали Intel и делают его автоматически (iretd извлекает регистр флагов из стека, кажется так).
> У нас тут Ассемблер и ничего больше!
Ну да... Что-то не похоже... На одном асме ты все-таки далеко не уедешь.
А вообще, этот вопрос видимо следовало бы персонально отправлять...
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 15.07.2003, 19:53
Отправитель: Bob Johnson
Вопрос № 3707 |
Здравствуйте.
У меня проблема изучал асм для DOS и хотел программу для треннировки написать. Решил связь с контроллером по протоколу 1-wire(через COMport), но с временными задержками проблема(как сделать задержку 120 мкс и менее.
Вопрос отправлен: 15.07.2003, 17:05
Отправитель: maximus_m
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Приветствую Вас, maximus_m!
См. ответ на вопрос 2698. А также поищите в архивах этой рассылки.
Я могу посоветовать ф-цию 86h прерывания int 15h
Ответ отправлен: 15.07.2003, 22:12
Отправитель: Tigran K. Kalaidjian
Отвечает Евгений Иванов
Здравствуйте, maximus_m!
Что такое таймер, ты знаешь?
Load the divisor into the port for that channel (40h-42h) to
set the interrupt rate. To calculate the divisor, divide
1,193,180 by the desired frequency. Or, the frequency per second
equals 1,193,180 divided by the divisor. For example, MS-BASIC
uses a divisor of 16,384 to obtain 1,193,180/16,384=72.826
interrupts per second (an interrupt every 13.73 ms) to time
its music functions.
Тебе надо 120 мкс.
1/120 = 0.008333*1000000 = 8333 Гц.
1193180/8333=143.187327
Вот этот делитель 143 и загружаешь в эти порты 40h...42h.
Но чтобы система не притормаживала, быстро обслуживай прерывание!...
Ответ отправлен: 16.07.2003, 00:50
Отправитель: Евгений Иванов
Вопрос № 3708 |
Здравствуйте.
У меня проблема изучал асм для DOS и хотел программу для треннировки написать. Решил связь с контроллером по протоколу 1-wire(через COMport), но с временными задержками проблема(как сделать задержку 120 мкс и менее .
Вопрос отправлен: 15.07.2003, 17:02
Отправитель: maximus_m
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Здравствуйте, maximus_m!
См. ответ на вопрос 3707
Ответ отправлен: 15.07.2003, 22:13
Отправитель: Tigran K. Kalaidjian
Отвечает Bob Johnson
Здравствуйте, maximus_m!
С помощью rdtsc - вначале узнай частоту процессора (посмотри разность результата этой функции за определенный промежуток времени и подели), а затем уже в простом цикле. Точность будет вполне подходящей (т.к. частоты современных процессоров 300 и выше мгц, т.е. один такт занимает менее 3 нс).
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 15.07.2003, 19:53
Отправитель: Bob Johnson
Отвечает _vt
Добрый день, maximus_m!
А как сделать более 120мкс ты знаешь??? Через таймер можно сделать задержку минимум 55мкс, если не перепрограммировать, а так и меньше... Читай в Журдене:http://www.kalashnikoff.ru/prog/jourdain.exe
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 16.07.2003, 12:47
Отправитель: _vt
Вопрос № 3709 |
мой вопрос заключается в следующем:
мне нужно скомпилить программу на ассемблере в машинный код,но только так чтобы не было всяких заголовков как в exe и всякой такой фигни - просто чистый код. если я в tasm компилю его как com файл, то нужно указывать в начале org 100h - иначе tlink не сработает. org 100h нужен в досе для организации psp, а мне это не нужно. подскажите пожайлуста что делать. в masm я вообще не нашел опции чтобы com файл делать. может существует такой компилятор, который просто в маш.код переводит без всяких заморочек?
заранее спасибо!
Вопрос отправлен: 15.07.2003, 22:09
Отправитель: igor sidorov
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Приветствую Вас, igor sidorov!
Для таких целей используется компилятор NASM: он поддерживает большое количество форматов, включая и чистый бинарный код, только синтаксис немного отличается от стандартных (в основном это касается директив компилятора)
http://nasm.sourceforge.net/
---===*** E-Man 1.4 - waiting for 1.5...***===---
Ответ отправлен: 16.07.2003, 12:47
Отправитель: _vt
Отвечает Lynx
Здравствуйте, igor sidorov!
Ну если тебе psp не нужен, то проге он нужен обязательно. Какая разница с какого адреса начинаются твои смещения в com файле. Всё равно эти 100h места не занимают. :)))
Ответ отправлен: 17.07.2003, 10:01
Отправитель: Lynx
Отвечает Теоретик
Доброе время суток, igor sidorov!
Если я не ошибаюсь, то Nasm может компилировать в простые бинарные файлы.
Именно поэтому я выбрал его для бредового проекта - создание Java-класса на асме :)
Ответ отправлен: 15.07.2003, 23:02
Отправитель: Теоретик
Отвечает Broken Sword
Здравствуйте, igor sidorov!
да ладна те! org 100h нужен для PSP... не смеши! это бред институтских преподов. org 100h нужен только для компиллятора. Создай com-файл содержащий одну инструкцию - ret. Сколько он занимает? 257 байт? (100h+1).
нет. как ни странно только 1 байт...
А зачем он компиллятору? а ну это чтобы все смещения были "относительно" 100h взяты. Вот это он уже для ДОС-а старается. А то что получается чисто машинный код - можешь не переживать. А если не веришь - посмотри в HIEW
Ответ отправлен: 16.07.2003, 00:04
Отправитель: Broken Sword
Отвечает Евгений Иванов
Доброе время суток, igor sidorov!
Попробуй FASM.
Visit http://fasm.metro-nt.pl/ for more examples and documentation
Ответ отправлен: 16.07.2003, 00:49
Отправитель: Евгений Иванов
Отвечает Maverick
Приветствую Вас, igor sidorov!
Хех, так PSP строит операционка, на диске его нет, вот com файл и выглядит на диске "как есть"
Ответ отправлен: 16.07.2003, 08:22
Отправитель: Maverick
Отвечает Beeblebrox
Здравствуйте, igor sidorov!
Делай СОМ файл и не переживай.
Можешь, конечно, изучить NASM (который все позволяет), но, судя по твоему вопросу, у тебя на это полжизни уйдет :)
Ответ отправлен: 16.07.2003, 09:54
Отправитель: Beeblebrox
Отвечает Tigran K. Kalaidjian
Доброе время суток, igor sidorov!
Если у Вас есть test.asm, который Вы хотите перевести в СОМ-файл, то соберите его следующим образом:
TASM TEST.ASM
TLINK TEST /T
Ключ /t свидетельствует о создании COM-файла
Ответ отправлен: 16.07.2003, 10:20
Отправитель: Tigran K. Kalaidjian
Отвечает ASMодей
Здравствуйте, igor sidorov!
Попробуй NASM или FASM. У них правда синтаксис несколько отличается от TASM, но в принципе разобраться и написать програмку можно.
Ответ отправлен: 16.07.2003, 10:21
Отправитель: ASMодей
Отвечает Andrew Vext
Здравствуйте, igor sidorov!
Я для таких целей (например для того, чтобы написать код загрузочного сектора) использую fasm.
Ответ отправлен: 16.07.2003, 10:26
Отправитель: Andrew Vext
Отвечает Andy
Доброе время суток, igor sidorov!
А в самом ком файле не будет этих "лишних" 256 байт... Эта директива говорит, что код размещать в памяти надо начиная со смещения 256...
Ком файл - это точная копия программы в памяти... Загрузчик просто копирует содержимое файла в память и устанавливает CS:IP на код...
А если тебе не надо чтобы в памяти висело лишних 256 байт, то надо самому перенести код в PSP. Но, имхо, не стоит оно того...
На эту тему смотри http://src.fitkursk.ru/articles/art0000016.asp
Ответ отправлен: 16.07.2003, 10:27
Отправитель: Andy
Отвечает Bob Johnson
Доброе время суток, igor sidorov!
Это все можно и в тасме - вот так:
Turbo Assembler 4.0 : tasm /m cih
Turbo Link 3.01 : tlink /3 /t cih, cih.exe
А знаешь, откуда это? Да, именно, так компилируется wincih, один из наиболее красивых и "добрых" вирусов...
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 17.07.2003, 01:34
Отправитель: Bob Johnson
Вопрос № 3710 |
Уважаемые,эксперты! Подскажите как запретить запуск 2-ого экземпляра программы?
Вопрос отправлен: 15.07.2003, 23:06
Отправитель: hex
[Следующий вопрос >>] [Список вопросов]
Отвечает Теоретик
Приветствую Вас, hex!
При запуске сразу ищешь главное окно программы с помощью FindWindow. Если нашёл - выходишь, если не нашёл - продолжаешь выполнение: регистрируешь класс, создаёшь окно и т.д.
Ответ отправлен: 16.07.2003, 15:47
Отправитель: Теоретик
Отвечает Lynx
Приветствую Вас, hex!
Я не особо знаком спрограмированием под винды и не знаю всех способов, но самый простой:
При запуске программы ищешь окно (FindWindow) и если такое окно уже существует (прога запущена), то завершаешь вновь запущеную прогу.
Помоему ещё через объекты Мьютекс можно, но я не знаю как. :)))
Ответ отправлен: 17.07.2003, 10:01
Отправитель: Lynx
Отвечает Евгений Иванов
Доброе время суток, hex!
szAppClass db 'Pupkin_MyProg_0',0
;--------------------------------
; Проверяет, запущена ли уже программа.
; OUT-> 0-нет, !0-да;
;
proc IsRun
Call FindWindow, ofs szAppClass, NULL
endp IsRun
Ends
Ответ отправлен: 16.07.2003, 00:48
Отправитель: Евгений Иванов
Отвечает Beeblebrox
Доброе время суток, hex!
Через семафоры. Какой вопрос, такой и ответ :)
Ответ отправлен: 16.07.2003, 09:56
Отправитель: Beeblebrox
Отвечает Gibbel
Здравствуйте, hex!
Приложение:
Ответ отправлен: 16.07.2003, 09:56
Отправитель: Gibbel
Отвечает Bob Johnson
Добрый день, hex!
Надо в самом начале поискать предыдущую копию твоего приложения (по окну, классу окна, мутексу и т.д.) и если найдешь - не запускаться, а, например, передать управление пред. копии (напр., сделать ее окно активным).
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 17.07.2003, 01:34
Отправитель: Bob Johnson
Вопрос № 3711 |
Как из под Дос Бокса (98 винда)запустиь Excel как Ole объект и управлять им. Т.е. задача выполняется как 16битная, но необходимо запустить Excel и управлять им из под этого безобразия. Если точнее то пример приложения вызываемого из под FoxPro 2.6 и реалиуеще заказанное
Вопрос отправлен: 15.07.2003, 23:23
Отправитель: wall (rusrus1@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Добрый день, wall!
Напрямую ИМХО никак. Но могу предложить следующие варианты (да не засудят меня коллеги =) :
1. Написать программу под WIN (на Delphi, например), которая будет висеть в трее и время от времени открывать некоторый файл, в котором будут содержаться инструкции для управления EXCEL'ем. Запись инструкций в этот файл может осуществлять как раз Ваша консольная программа.
2. Запуск EXCEL'я производить напрямую (или открывать нужный EXCEl'евский документ с помощью start.exe). Написать макрос на VBA, который будет обрабатывать файл с инструкциями от Вашей программы и выполнять нужные действия.
Ответ отправлен: 16.07.2003, 10:32
Отправитель: Tigran K. Kalaidjian
Отвечает Bob Johnson
Добрый день, wall!
Ну запустить можно. Но вот чтобы еще и управлять... Тут тебе надо писать приложение-посредник - т.е. запускаешь ты это приложение из-под dos с опред. параметрами, а оно (оно уже виндовское) находит через ole execel и работает с ним, выполняя нужные функции. Медленно, конечно, будет, но а что ты хотел? Переходи от foxpro хотя-бы в access.
* EMan1.4: ---===*** Have your friend the way you would like him ... never mind, do anything that comes natural ***===---
Ответ отправлен: 17.07.2003, 01:34
Отправитель: Bob Johnson
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (35) C / C++ (22) Perl (4) Builder / Delphi (19) Pascal (24) Basic / VBA (10) Java / JavaScript (11) PHP (9) Криптография (7) WinAPI (9) |
Пользователю Windows 95/98/Me (38) Windows NT/2000/XP (32) "Железо" (27) Поиск информации (20) |
Администратору Windows NT/2000/XP (16) Linux / Unix (7) |
Юристу Гражданское право (10) Семейное право (5) Трудовое право (9) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||