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

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


Служба Рассылок Subscribe.Ru

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

Выпуск N 148

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-12-05


Вопрос №1602

Подскажите, пожалуйста как на Асме работать с ЕММ.
Заранее спасибо.

Ответ

Здравствуйте, Dzik!
Мне очень не хочется перепечатывать с книжки... Прости... Это есть у Зубкова. Посмотри на
Kalashnikoff.ru в разделе книг... Там и HMA и все-все-все. Вообще - классная книжка!


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 31

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1604

Привет всем :) Спешу присоедениться к мнению Broken Sword'a что хватит уже мучить Real Mode пора уже задуматься и о PM (что ВОВСЕ не одно и тоже что програмирование на Асме под Винды !!!! (почему-то все это растолковали именно так :( ))
А то уж эти демки под 320x200x256... НАДОЕЛО ! Кстате о демках, недавно с удивлением узнал что оказывается Linear Frame Buffer вовсе не означает что его нужно обязательно программировать под защ. режим (что бы там Зубковы и проч. не писали !) Главное чтобы Vesa 2.0 был (а я то как придурок носился с этим переключением банков :( ) Только вот что-то я не до конца дорубился в это дело :( кто знает что то про это накатайте !

Ответ

Здравствуйте, Барт Симпсон!
Ну-ка - ну-ка... Поподробнее... Мне тоже интересно... Если кто знает - пожалуйста в рассылку
это отошлите!


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 32

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1623

Привет всем!!!
ТУт недавно задавался вопрос по поводу горения лампочки HDD и так никто толково не ответил.
Там есть порт 1f7h и у него последний бит отвечает за занятость HDD. Вот код программы.
.model tiny
.code
startupcode
begin:
mov dx,1f7h
in al,dx
or al,10000000b
mov cx,0ffffh
metka2:
push cx
metka:
out dx,al
jmp $+2
loop metka
pop cx
loop metka2
mov ah,4ch
int 21h
end begin
И еще был вопрос по поводу открытия и закрытия сидирома. Вот API fuction: mciSendString("Set cdaudio door open wait",HULL,0,handle) либо close вместо open. Рулез.

Ответ

Здравствуйте, DiGiT!
Про HDD - круто!
Про CD-ROM есть способ лучше, я только что ответил.


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 35

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1624

До простят меня все присуцтвуюшие за вопрос вне темы!Увожаемый Painbringer, благодарю за ответ по Сям!
Но я весь день вчера долбался..., передолбался..., но нечго не работает, а скоро надо здавать работу... .
-----------------------------------------------------------
#include
#include
#include
void main()
{
randomize( );
printf ("%d ", rand ( ));
}
------------------------------------------------------------
Компилятор выдает такие ошибки:
--------------------Configuration: 123 - Win32 Debug--------
Compiling...
123.c
c:\myp\си\123\123.c(6) : warning C4013: 'randomize' undefined; assuming extern returning int
Linking...
123.obj : error LNK2001: unresolved external symbol _randomize
Debug/123.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

123.exe - 2 error(s), 1 warning(s).
------------------------------------------------------------
Буду благодарен за любую помошь!
P.S.Надеюсь меня за офтопик не побьют:))

Ответ

Здравствуйте, Alex!
Во-первых! Для rand() не нужен ни time.h, ни randomize().
RTFM! Почитай справку по Сям.
Во вторых: rand() выдает случайное число от 0 до RAND_MAX - которое зависит от
компилятора. Так что делай выводы, если тебе нужен генератор чисел от 0 до A...

Приложение:


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 36

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1627

Привет всем ! Уже задаю задаю вопросы а на них ни кто не отвечает :( Так вот...О чем это я ? Ага... Как поставить аппаратный брейкпоинт на обращение к памяти (кстаи с его помощью можно например защитить вирь от нападения злобных Dr.Web'ов и ему подобных :)) Я слышал что это вроде делается с помощью отладочных регистров процессора, но ведь они появляются помоему только начиная с Pentium 2 (или просто с MMХ ?) а Турбо Дебагер помоему все это может делать и на 486...или это он програмно ?
и еще...Пишем какую-нибудь резидентеную прогу, однако она почему то занимает в памяти вовсе не столько сколько можно было ожидать ? и даже не "размер проги+psp" !!! И вообще написал я рез. таймер (висит в левом верх. углу и время показывает) так вот первый раз написал, запустил - занимает 128б. Дальше... Оптимизировал, оптимизировал, оптимизировал... все равно 128 !!!! ;(((((( тут еще раз оптимизировал... о ! теперь занимает 115б !!!! Т.е. размер изменялся дискретно и непонятно вообще как (а вовсе не на то кол-во байт на которые я уменьшал её (оптимизировалась только рез. часть )) !!!!! Что это за бред еще ????

Ответ

Здравствуйте, Барт Симпсон!
(Отвлекусь: только что заметил: эксперты - обратите внимание на кнопку "отправить ДО..."
У меня стоит "Отправить ДО 01/13/2001" - хахаха! Олег Александрович! Примите меры!
А то глядишь, через месяц будет и 01/14/2001 !)
Итак, revenons a nos moutons(фр.)...
Насчет брекпоинта... Как делают отладчики: возводят флаг TF (Trap flag) и после каждой
выполненной команды выполняется прерывание 03h. То есть, смотришь, какая команда выполняется
в данное время и меняешь, что тебе надо. По моим подсчетам это не просто будет тормозить твои
игры, это ...(фантазии не хватает...)
А вообще, насчет твоей идей возрождения prehistorik'ов... Легче, по-моему, написать самому.
Глядишь, и фичи добавятся... А вообще, у меня тут есть идейка одной игры. Писать самому
много и трудно, а внесколькером - интереснее. Если заинтересовался - пиши.
baldr@pisem.net


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 37

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1637

Sensey у меня точно нету этого прототипа в файле stdlib.h.
P.S. Прошу прошения за столь надоедливое и упертое задование вопроса... .

Ответ

Здравствуйте, Alex!
Замените все окружение (переставьте VC++...). А вообще используйте rand()


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 39

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1638

Всем привет.

Читаю я тут рассылку читаю, читаю и возник у меня вопрос, это касается не только экспертов.
А подскажите плз, ну понимаю я программить на асме под экзотические процессоры, под винду, всякие там загрузчики, ОС писать в конце концов. Но зачем под DOS то? Неужели ею кто-то пользуется? Проскакивают бывает вопросы по поводу вирей под дос, ну ладно вирмейкера мозгами не понять у всех свои хобби. Но скажите плз с ПРАКТИЧЕСКОЙ точки зрения - какой в этом смысл?

Ладно начал уж писать так допишу.
Тут периодически возникают предложения насчет перехода под Win32, написания своей ОС и т.п.
п.1. Так уже давно вопросы появляются и под Win32 правда интересных почти нет.
п.2. Граждане не понимаю я энтузиастов по написанию своей оськи. Ну согласен практически все рано или поздно начинали писать свою ось но Торвальдсена не многие дошли, да и зачем это? Не лучше ли развивать существующие?
Короче несколько сумбурно, но висят параллельно два проекта поэтому обсасывать мысли просто некогда.

Мое предложение в следующем.
Нефиг заниматься фигней (простите за тафтологию) создавать никому не нужные прооги ради самого процесса. Как показывает опыт и не только мой, научиться чему-либо можно лишь на реальных задачах. Так и давайте создавать что-нибудь практически нужное. Ведь ту же самую оську можно писать не ради ее самой а допустим для СУБД реального времени, где кроме этой самой СУБД нифига работать не будет (а ежели делать ее ГИСориентированную то тут уже миллионы$). Или млин если уж пишите вирусы то хоть предметную область изучите (млин сам ругался на WizarXа но вопросы на самом деле несколько [censored]) ведь куча наработок уже есть (я не имею в виду пионеров которые хотят свое имя в журнале "Хакер" увидеть, а людей которые этим занимаются преследуя какую-нить идею см. напр. z0mbie.host.sk).

Ладно ближе к телу.
Конфа называется "Учимся программировать". Вот и давайте учится на практических задачах, которые можно продать. Естессно уровень у всех разный но это дело поправимое, пару-тройку месяцев и все желающие будут программировать как боги.

Итак суть - учимся зарабатывая.

ЗЫ: ну не понимаю я искусства ради искусства. Вон Олег взял и книгу написал - уважаю - денег не много, но тоже результат.

Ответ

Здравствуйте, lom!
Вы неправы. Это лично моя точка зрения и я готов поспорить. Но не здесь. Пишите.
Вообще, каждый программист рано или поздно приходит к тому, что понимает, как реализована
та или иная функция в системе. И сам находит более рациональные пути их решения. Но не Билли
же будет их спрашивать. И приходится этим гениям-одиночкам воплощаться самостоятельно.
Пишут они свои ОС'ки и у некоторых хватает терпения. Так и получаются хорошие вещи. А те,
у кого не хватило воздуха/терпения/времени все равно приобретают громадный опыт. Ибо нельзя
научиться ни на чем, кроме собственного опыта... Что касается DOS, то именно для него Asm
сейчас подходит лучше всего. ни тебе GPF в каждый запуск, ни контроля системы за тобой -
пиши-не хочу! Тут ты сам себе хозяин-барин! Хошь - с FAT'ом работай напрямую, или с любой
области памяти сдирай байтики... Красота! А насчет DOS: Народ! заметьте тенденцию: винда
устаревает быстрее, чем DOS! Вроде бы и была у нас 95ая... 98ая... и т.д. А DOS-то остался!
И народ от него не отходит!
MemoBreaker ! Ты точно схватил! (см. ниже...)


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 40

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1675

Доброго времени суток!
Сори эксперты, но это не вопрос, а ответ на вопрос 1599
по функции random();
что она зазробила тебе нужно инициализировать генератор
случайных чисе. Для ентова исть макрос void randomize(void);
прототип его лежит также в stdlib.h но он использует
функцию time() так что надо еще включать в программу заголовочный файл time.h

Ответ

Здравствуйте, Аркаша!
time.h инклюдается в самом stdlib.h, так что нет смысла включать его еще раз!
А уж если там нет randomize, то просто глючный набор библиотек. Должон быть! просто,
может не так что делали (это я для Alex'а)?


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 43

Экспертная группа: Пользовательская работа с Windows

Вопрос №1677

Уважаемые эксперты!
Я пытаюсь заставить прогу мигать Num, Caps и Scroll lock'ами.При трассировке в отладчике она работает нормально, при просто запуске_мигает только выставленный первым светодиод...
Для включения использую байт 0:417h, 6й бит - Caps, 5й - Num, 4й - Scroll.

Ответ

Здравствуйте, NeoS!
Целый час сидел... В общем, я понял в чем дело, постараюсь объяснить.
В общем так... Вы изменяете только значение в памяти. А нужно, чтобы казалось, будто нажата
клавиша. Попробуйте поставить паузу побольше, скажем, 5. И пока молчит - нажмите что-нибудь.
Ну как? В общем - попробуйте как-нибудь сэмулировать вызов обработчика клавиатуры... Ну там,
может вызвать int 16h? Просто мне влом сейчас этим заниматься. Сорри.


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 44

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1687

Можно я тоже скажу! :)

Сам я работаю программистом, программирую под Юникс. Иногда под ДОС. Кто сказал что ДОС умер? не охота конечно возиться с этой ограниченной однозадачной операционкой, но работа требует жертв. Ассемблер по работе мне в принципе не нужен, хотя иногда пользуюсь и им. Вообще ассемблером занимаюсь уже лет 10... издавна увлекаюсь этим делом.

Но это была присказа. сказка впереди.

Найти работу на ассемблере трудно, но можно. речь не об этом. Мое мнение таково что знать ассемблер необходимо не только для собственного удовлетворения. Хороший программист должен знать ассемблер для того чтобы понимать как его программы работают вообще. Потому что процессор работает не на си, и не на дельфи тем более. процессор работает именно на ассемблере (в его цифровом представлении естественно). Для создания хороший программ на любом языке нужно понимать во что это выливается в итоге. Понимание этого позволяет делать быстрые и компактные программы на любом языке. Так что дело не в языке. И кстати кто сказал что ассемблер - это прерогатива дос? ассемблер - это все. Виндуз - это тоже ассмеблер. НО из за своей внутренней сложности делать например окошко с hello world проще через апи. сделать это без применения апи - это можно костьми лечь. но не виндузом единым жив компьютер. Есть много других систем.

Короче я считаю знать ассемблер нужно. ассемблер - не мертв.
Любой компилятор переводит высокоуровневый код на язык ассемблера. Это получается как общение через переводчика, зачем общаться через переводчика, когда можно говорить с компьютером на его языке?

Извините за многословность. :)

Ответ

Здравствуйте, Dron!
Получается, будто все оправдываются! Да не нужно оправдываться! Асм есть, нужен и НАДО учить
на нем программистов! Чтобы знали, к чему приводит та или иная функция, как она реализована,
но писать только на ассемблере - это, извиняюсь, непрактично... Я более всего согласен со
многоуважаемым г-ном Гербертом Шилдтом в его рекомендации написания программ на си. Он
советует писать программу на си (в смысле - если уж взял си...), затем генерировать из нее
асм-текст (есть такая возможность. Во всяком случае в BC 3.1), а уже потом оптимизировать...
Потому что, даже при включенной автооптимизации (а там куча настроек!) компилятор может
создавать очевидный непрактичный код. В общем - окончательная доводка. Ну а если приложение
совсем критично к скорости/размеру и сложных структур в ней немного - то это явный клиент
ассемблерщика. Я так считаю!


Отправил эксперт: baldr (http://www.dospage.fromru.com - Сайт об ОС DOS. Всем, кто любит эту ОС!)
Эксперт отправил ответов (всего): 45

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1714

Здравствуйте, Eliseev!

Перешлите, пожалуйста, вопрос через спецформу, т.к. у меня нет такой
возможности.

EAG> © Kalashnikoff.ru - Экспертные группыВсе понял. Спасибо.Но одна прблема мне до конца не ясна.:
EAG> 1. что произойдет с офисом и документами
EAG> 2. почтой Outlook Express-а
EAG> 3.программами, которые были созданы под Windws Me
EAG> C уважением. Александр
EAG> ----- Original Message -----
EAG> From: Experts@Kalashnikoff.ru
EAG> To: aleliseev@mtu-net.ru
EAG> Sent: Wednesday, November 28, 2001 8:07 PM
EAG> Subject: Ответ эксперта kbpS


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


EAG> --------------------------------------------------------------------------------


EAG> Ваш вопрос № 1672:

EAG> Как аккуратно убрать одну операционную систему, если стоит двеWindowsNTиWindowsMe.Хочу убратьWindowsME.Первая ставилась
EAG> WindowsMe
EAG> Спасибо.Александр.
EAG> --------------------------------------------------------------------------------

Ответ

Здравствуйте, Елисеев Александр!
Честно говоря не понял, что значит через спецформу. Направляю так и по рассылке. Чтобы сохранить документы из Outlook Express войди в него (если он ещё живой), далее Сервис-Параметры-Обслуживание-Банк сообщений, там надо посмотреть, на какую папку указывает этот банк сообщений. Потом надо найти эту папку на диске (можно фаром или проводником) и переписать оттуда всё, что там есть в какую-нибудь свою папку, например, C:\Почта. Только перед копированием надо выйти из Outlookа. Потом в другой операционке зайти тудаже и установить банк сообщений на эту папку. После перезагрузки Outlook почта будет видна в новой винде. Эту папку можно указывать в нескольких виндах, если они стоят. Я так делаю. Теперь на счёт офиса. Если его грохнуть вместе с программ файлс, то все настройки конечно пропадут, но документы, надеюсь, были в "Моих документах", и стирать их не надо. Если лень перенаправлять ярлык этой папки в новой винде, то скопируй документы оттуда в папку с твоими документами в новой винде. Предупреждение. Если вдруг Programm Files у тебя одна на обе винды, то стирать её не надо. Офис и программы конечно придётся переставить. Данные других программ смотри сам, где лижат.


Отправил эксперт: kbpS
Эксперт отправил ответов (всего): 18

Экспертная группа: Пользовательская работа с Windows

Вопрос №1711

Здравствуйте!
Извините, может не по адресу вопрос, но все таки
может кто знает где можно скачать нормальный учебник по перлу для начинающих.

Ответ

Здравствуйте, Алексей!
Есть куча ссылок на e-book'и по Перлу на одноименном сайте www.perl.ru


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 63

Экспертная группа: Пользовательская работа с Windows

Вопрос №1713

Ну что, дулки кончились! Ну да ладноВсем привет! У меня вопрос, народ где можно взято нормальный исходник гостевухи и чата??? На перле не прет, могет на яве???

Ответ

Здравствуйте, WizarX!
JavaScript исполняется на стороне клиента (т.е. вашего компутера), а посему производить изменения на сервере не может -> никаких гостевух и чата на нем не сделать...
Что же касается сайтов c исходниками
www.cgi.ru
www.cgi-bin.ru


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 64

Экспертная группа: Пользовательская работа с Windows

Вопрос №1708

Эксперты.
Стояла у меня 98 и 2000. Решил добавить ХР. Добавил, исчезла 2000, восстановил 2000, исчезла ХР, и так далеее.
Кто нить подскажет, как совместить все 3 версии (стоит еще и линух, но в своем партишене) А 2000 и ХР под FAT32,
но на разных логических дисках

Ответ

Здравствуйте, Oleg!
Так я не понял зачем тебе две версии NT. Понятно две операционки разных версий не будут стоять друг с другом(зачем 2000 если есть XP)
Ты попробуй выделить им разные разделы. Причем NT-хам выдели NTFS-ные разделы. И пробуй все ставить из под 98-ой(правда зачем). Не знаю эксперементировали ли люди с установкой одной и той же оси разных версий.(Поставить Дос,95-ую,98-ую,МЕ:)) ) Кстати возможно теоретически через МБР.


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 112

Экспертная группа: Пользовательская работа с Windows

Вопрос №1710

здравствуйте.
Есть PIII 600 , мама VIA. Принтер HP610C.
Вот дело и в принтере.
При выводе документа на печать из Ворда,Блокнота или
любого приложения происходит запись в ОЧЕРЕДЬ ПЕЧАТИ.
По истечении какого то времени(приблизительно равного времени для нормального выхода документа из печати) очередь очищается. Принтер молчит, не подмаргивает, те не производит ни каких действий. Принтер не причем, так как производилась замена последнего на проверенный такой же марки, вместе с кабелем, блоком питания.
В Сетапе стояло два порта LPT1-Primary/
Ставили второй Секондари или запрещали. Результат не изменный.
Есть ли возможность проверить сам Порт, физических разьемов= один.

Ответ

Здравствуйте, OLEG!
Так ясно ты глючишь. Все работает при чем здесь принтер. Мне по роду своей админской деятельности часто приходится сталкиваться с такими проблемами. Попробуй дрова переустановить, потом шлейф. И скорее всего дрова не верно стоят и винда глюконит. А так попробуй все провода.


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 113

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1706

hello ..first i want to thank you very much so as to your program assembler it's just we are studying how to program...by the way i'am arab ,exuse me because i write in english....i like your program so much...
in the past i thought that program in assebler very complex
and not to be learn for me,but when i reead your program"assembler it's just studing programing "i chnge my mind ...now i can write program in assembler...i'am very happy...желаю вам всего хорошего и продолжаетесь"
мой вапрос :что такой коррекция регистр ds и что это за единица параграф и что значит округлены параграф ...огромны спосибо...

Ответ

Здравствуйте, sulieman!
Коррекция бывает разная. Параграф 16 байт. Может быть тебе нужна коррекция после пересчета в формате BCD. Вообще есть разная коррекция. Просто прокачай учебник по асму и почитай. Например есть команды коррекции


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 114

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1703

Здравствуйте уважаемые Эксперты!

Плиз, подкиньте примеры алгоритмов подсчета CRC (желательно не слишком сложные). Пробовал хеш-функцией (ADDITION) - коряво, т.е. CRC ABAB=BABA=ABBA и т. п. Надо какую-нить простенькую, но без этого недоразумения. Заранее благодарен.

Ответ

Здравствуйте, Диман!
В смысле ты можешь делать просто командой XOR а там смотря по каким границам можешь по словам, а можешь и по байтам. Вот это самое простое.Например есть последовательность байтов или слов или еще чего
a1,a2,...,an так вот просто делаешь
a1 xor a2 xor ... xor an. А так как эта операция ассоциативна, то просто делай в цикле все любом порядке. Вот и смысл просто общую контрольную сумму. А можешь по блокам и вообще как заблагорассудится.


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 115

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1713

Ну что, дулки кончились! Ну да ладноВсем привет! У меня вопрос, народ где можно взято нормальный исходник гостевухи и чата??? На перле не прет, могет на яве???

Ответ

Здравствуйте, WizarX!
А самому заваять слабо????
Это ж просто вот тебе переменые среды на перле...
REQUEST_METHOD -определение метода запроса GET или Post
QUERY_STRING -строка запроса при методе GET
CONTENT_LENGTH -длина в байтах тела запроса
CONTENT_TYPE -тип тела запроса
GATEWAY_INTERFACE -версия протокола CGI
REMOTE_ADDR -IPшник удаленого хоста который стучится :)
REMOTE_HOST -адресс удаленного хоста
SCRIPT_NAME -имя скрипта
SCRIPT_FILENAME -имя файла скрипта типа perlbook.cgi
SERVER_NAME -имя сервера
SERVER_PORT -порт сервера ТСР порт
SERVER_PROTOCOL -протокол
SERVER_SOFTWARE -софтина установленая на сервере например Apache 1.0.3
AUTH_TYPE -аунтефикация юзера(если есть)
REMOTE_USER -тоже
HTTP_ACCEPT -отсылает серверу данные котрые боузер воспринимает как ответ от сервера
HTTP_USER_AGENT -определения типа броузера
HTTP_HOST -имя хоста кому был передан запрос (клево ловить челов которые через проксики тусуются:))
ну теперь забацай нам гуесбук :-)


Отправил эксперт: змей
Эксперт отправил ответов (всего): 140

Экспертная группа: Пользовательская работа с Windows

Вопрос №1720

Здравствуйте, господа эксперты!

некоторое уточнение к ответу Dron на вопрос № 1695
отладочную информацию в .com файле получить можно таким образом:
tasm /zi foo.asm
tlink /v foo,foo,,,
tstrip –s –c foo.exe
в итоге получим foo.com и foo.tds, если дело происходит под Windows возможно придется дополнительно проделать touch foo.tds

если это представляет интерес, перешлите в рассылку

успехов

vlad
asmreq@hotbox.ru

Ответ

Здравствуйте, vlad!

Да, справедливо.
Но линкер при этом будет ругаться благим матом на отсутствие стека. :)


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 206

Экспертная группа: Работа с MASM/TASM

Вопрос №1721

Здравствуйте!
Загрузка с винта(6.5 Gb) стала длиться на много больше чем обычно. Каждая команда из autoexec'а выполняется около 5-и секунд. И драйверы загружаются очень долго. Что это может быть?
Cпасибо.

Ответ

Здравствуйте, Alexei!
Поставьте драйвера от материнки,убей лишние строки из autoexec(у меня их вообще 2),если есть сетевуха - поставь ей IP (192.168.1.1 например)
с ув. x-gn


Отправил эксперт: x-gn (www.mail2k.ru/~ev-i - Пусто :))
Эксперт отправил ответов (всего): 1

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1725

Всем доброго времени суток.

К сожалению, у меня оно сейчас не совсем доброе. Я мучаюсь с одной программой, точнее, собщей проблемой всех моих программ. Дело вот в чЈм:

Как видно из нижеприведЈнного кода, я создаю цикл двойной вложенности... Вроде бы всЈ правильно... НО! При запуске в трассировщике вижу, что лишь ВТОРОЙ цикл выполняется нужное количество раз, а ПЕРВЫЙ - нет! Из-за этого и программа не работает...

Вопрос, я думаю, ясен всем: как от этого избавиться?

ЗЫ. Просьба решений типа "заменить один цикл другим" не предлагать - уже пробовал, не работает.


Спасибо.

Ответ

Здравствуйте, Антон!

Странно. могу предположить что ты меняешь во внутреннем цикле значение i. если нет, то приведи полный фрагмент программы.
Приведенный тобой вполне работоспособен.


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 207

Экспертная группа: Оптимизация программ

Вопрос №1725

Всем доброго времени суток.

К сожалению, у меня оно сейчас не совсем доброе. Я мучаюсь с одной программой, точнее, собщей проблемой всех моих программ. Дело вот в чЈм:

Как видно из нижеприведЈнного кода, я создаю цикл двойной вложенности... Вроде бы всЈ правильно... НО! При запуске в трассировщике вижу, что лишь ВТОРОЙ цикл выполняется нужное количество раз, а ПЕРВЫЙ - нет! Из-за этого и программа не работает...

Вопрос, я думаю, ясен всем: как от этого избавиться?

ЗЫ. Просьба решений типа "заменить один цикл другим" не предлагать - уже пробовал, не работает.


Спасибо.

Ответ

Здравствуйте, Антон!
Ставлю 200$, что в {теле цикла} меняется "i" или "a" или ты нам голову морочишь!!! Я понимаю, если б ты ее просто запускал
ctrl+F9, тода ясное дело, что непонятно где счетчик сбивается... но ты ж сам написал, что трейсил прогу!!! ТАК ЧЕГО Ж ТУТ НЕЯСНОГО ТО???? ПОСТАВЬ watch на i и a и сиди следи!!!!!!!!!!!!


Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 229

Экспертная группа: Оптимизация программ

Вопрос №1724

Здрасте Broken Sword !!!!
Спасибо за программу(я все сделал без проблем, работает отлично), как говорили ВЫ пиво с меня-это точно(сделаю если смогу):-))))
Но тут маленькая проблема, я конечно извиняюсь за то, что я сглупил, но мне нужна программа на процессоре серии 580.
За то что ВЫ мне помогли я выношу ВАМ огромную благодарность(еще остались добрые люди), но помогите написать программу на 580.
Если лень писать, то вышлите описания для этой программы(все таки 286, а команды я под него не знаю)
Пиво с меня это точно, но только если где - нибудь и когда нибудь увидимся :-)))
Всегда ВАШ покорный читатель !!!!!!

Напоминаю условие задачи
Вот задача :
Нужно вводить числа(х,у) в диапозоне от 0..9 и после обработки выводить на экран.
F=((x*lny)/5)-(7*y),где ln-натуральный логарифм

Ответ

Здравствуйте, Jester's!
Слушай, ты конечно извини, но ты как из той песни "Ответ" (dj Groove):

А что вы имеете ввиду под словом "580"?
- ну... Электроника КР580ИК.
ААААААААААААААААААААААААААААААА!!!!!!!!!!!!!!!!!!!!!!!!!

извините. меня на такое ни за какое пиво не прельстишь! ;)
если же ты имел ввиду i586 процы, то я вообще промолчу... ;(

но описание - пожалуйста, лови! Если появяться конкретные вопросы - задавай в столбик.

p.s. госсспади, я думал эти монстры (КР580) только в нашем политехе стоят, а они по всему совку расползлись! У нас даже принтер один к ним есть (единственный в союзе между прочим!)-мы все над ним трясемся...

Приложение:


Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 230

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1703

Здравствуйте уважаемые Эксперты!

Плиз, подкиньте примеры алгоритмов подсчета CRC (желательно не слишком сложные). Пробовал хеш-функцией (ADDITION) - коряво, т.е. CRC ABAB=BABA=ABBA и т. п. Надо какую-нить простенькую, но без этого недоразумения. Заранее благодарен.

Ответ

Здравствуйте, Диман!
Cм приложение

Приложение:


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 50

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1698

Подскажите кто-нибудь формат файла IO.SYS. Или это обычный exe-файл?

Ответ

Здравствуйте, Human!
Скорее COM


Отправил эксперт: Covax
Эксперт отправил ответов (всего): 8

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1721

Здравствуйте!
Загрузка с винта(6.5 Gb) стала длиться на много больше чем обычно. Каждая команда из autoexec'а выполняется около 5-и секунд. И драйверы загружаются очень долго. Что это может быть?
Cпасибо.

Ответ

Здравствуйте, Alexei!
Вирус!


Отправил эксперт: kbpS
Эксперт отправил ответов (всего): 19

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1727

Здравствуйте, эксперты!
Вопрос такой: в Windows NT notpad-ом можно открыть файл любого размера, а в Windows95 ограничение составляет где-то 50 кБ. Я хотел бы узнать можно ли снять это ограничение в Win95? Зарание спасибо...

Ответ

Здравствуйте, Sergey S.!
По-моему, это размер данных в блокноте описан как WORD, т.е. больше, чем 2^16 туда символов не войдёт. Остаётся другой редактор использовать.


Отправил эксперт: kbpS
Эксперт отправил ответов (всего): 20

Экспертная группа: Пользовательская работа с Windows

Вопрос №1727

Здравствуйте, эксперты!
Вопрос такой: в Windows NT notpad-ом можно открыть файл любого размера, а в Windows95 ограничение составляет где-то 50 кБ. Я хотел бы узнать можно ли снять это ограничение в Win95? Зарание спасибо...

Ответ

Здравствуйте, Sergey S.!
64 кb
Только ставить альтернативный редактор,благо_их_как грязи


Отправил эксперт: UFO
Эксперт отправил ответов (всего): 51

Экспертная группа: Пользовательская работа с Windows

Вопрос №1723

Hi all! В прошлом выпуске был ответ по поводу програмного изменения разрешения экрана. А конкретно на примере вы можете помочь с этой API функцией. ChangeDisplaySettings - там столько настроек, в которых не совсем все понятно. Есть такая задача, чтобы при запуске программы, экран переключался на 800*600, и при выходе из программы, возращался в свой обычный режим. ?

Ответ

Здравствуйте, joker!
По функциям я отвечал много раз, но вот про примеры спросили первый раз. И это хорошо. А то все думал, неужели достаточно только названия функции и все становится ясно. На самом деле не так все просто. Отвечал я как-то по функциям поиска и даже снизу подписал, мол если что пишите объясню, но никто не написал. А там не так все просто. Надо обрабатывать ошибку, чтобы узнать о конце поиска, о которой я ни словом не обмолвился. Ну да ладно, приступим к ответу на этот вопрос. Пример сфорганил на скорую руку, так что прошу прощения за имена переходов (ссылок), но не хотелось думать как их обозвать. Так же прошу прощения за стиль, ну вот так я пишу, привычка. Вот текст с пояснениями, а в приложении сама структура и некоторые переменные. Компиляцией на прямую работать не будет (это кусок), так что надо вставлять к себе выборочно.


extrn EnumDisplaySettingsA:near
extrn ChangeDisplaySettingsA:near

.data?
handledlg dd ?
iconID dd ?
color dd ?
width dd ?
height dd ?
flag dd ?
change dd ?
screenstruc DEVMODE <> ;структура для данных
endscrstruc:

.code
mov [change],0 ;изменений не было
cmp dp_uMsg,WM_CLOSE ;получили сообщение о закрытии окна
je enddlg
cmp dp_uMsg,WM_DISPLAYCHANGE
jne aaaaa
;здесь получили сообщ. о изменении размеров экрана после первого вызова ChangeDisplaySettingsA
cmp [flag],0 ;чтобы не было второго входа при втором вызове ChangeDisplaySettingsA
jne aaaaa
mov ecx,[dp_lParam] ;получаем текущие параметры экрана
xor eax,eax
mov ax,cx
shr ecx,16
mov [width],eax ;теперь здесь длина
mov [height],ecx ;теперь здесь высота
mov eax,[dp_wParam]
mov [color],eax ;здесь цвет
inc [flag] ;во избежании второго входа
jmp not_exit
aaaaa: cmp dp_uMsg,WM_COMMAND
;если сообщение является командой, то проверяем, иначе нафиг
jne not_comm
cmp dp_wParam,IDC_Exit ;если нажата кнопка выход
je enddlg ;уходим на завершение
cmp dp_wParam,IDC_Change
jne not_comm
;нажата кнопка изменить разрешение
mov [flag],0
push 0
push 0
;во время работы функции будет послано сообщение WM_DISPLAYCHANGE, которое мы перехватим и сохраним текущие пораметры экрана
call ChangeDisplaySettingsA ;вызываем без параметров (чтобы ничего не изменить)
;Дальше кусок в котором мы определяем поддерживается ли интересующий нас режим
xor ebx,ebx ;если 0 то первый режим видео карты, потом +1 следующий
aa1: push offset screenstruc
push ebx
push 0
call EnumDisplaySettingsA ;получаем инфу по режиму
or eax,eax ;если получили 0, значит конец
jz not_exit ;иначе проверяем наш
inc ebx ;для следующего круга
;нас интересует режим 640 по ширене (высоту не проверяем, хотя надо бы) с 256 цветами
cmp dword ptr [screenstruc.dmPelsWidth],640 ;длина
jnz aa1 ;если нет, еще кружок
cmp dword ptr [screenstruc.dmBitsPerPel],8 ;цвет
jnz aa1 ;если нет, еще кружок
mov word ptr [screenstruc.dmSize],endscrstruc-screenstruc ;размер структуры
;и устанавливаем. В структуре все данные есть, поскольку, мы здесь после проверки наличия самого режима
push 0
push offset screenstruc
;во время работы функции будет послано сообщение WM_DISPLAYCHANGE, но на этот раз мы его пропустим, потому, что переменная flag изменена нами
call ChangeDisplaySettingsA
mov [change],1 ;информ. программу что изменения внесены
;обработка команд закончена
not_exit: xor eax,eax
inc eax
pop esi
pop edi
leave
ret 16
;ВЫХОД
enddlg: cmp [change],0 ;если изменений не было
jz enddlg1
;иначе восстанавливаем
mov eax,[width]
mov [screenstruc.dmPelsWidth],eax
mov eax,[height]
mov [screenstruc.dmPelsHeight],eax
mov eax,[color]
mov [screenstruc.dmBitsPerPel],eax
push 0
push offset screenstruc
call ChangeDisplaySettingsA
enddlg1: push iconID
call DestroyIcon
push 1
push dp_hWnd
call EndDialog

Вроде понятно объяснил. Если что пишите.

Приложение:


Отправил эксперт: Andy Bitoff (http://bitoff.pisem.net - HomePage)
Эксперт отправил ответов (всего): 31

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1728

Здравствуйте эксперты.
Хочу задать вопрос,я знаю что к Windows он ни какого отношения не имеет.Просто я не знаю кому мне еще его задать.
Сильно меня не ругайте.Как в Linux поставить дрова,на модем.

Ответ

Здравствуйте, Max!
Если модем аппаратный, то включи опцию про последовательный порт, далее читай SERIAL-HOWTO. Если у тебя тока винмодем, то нужно смотреть модель. Я встречался с двумя модемами motorolla SM56, и Acorp на чипе Conexant и оба настроились используя дрова с их сайтов. Будут вопросы пиши на crown_adm@economy.chita.ru(Xeon'у или Crown_adm'у)


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 117

Экспертная группа: Пользовательская работа с Windows

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Управляющий рассылкой,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


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

В избранное