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

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.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
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.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное