Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
"Ассемблер? Это просто! Учимся программировать (FAQ)"
Выпуск № 203
от 02.03.2002, 02:05
Администратор: Калашников Олег
Сайт Администратора: Программирование на Ассемблере
Старейшины рассылки |
1. Broken Sword - ответов: 366. 2. Painbringer (нечто наподобие домашней страницы) - ответов: 357. 3. Sensey - ответов: 311. 4. Dron (Операционная система с нуля!) - ответов: 252. 5. DiGiT - ответов: 236. |
Вопрос № 583 |
Yo!
Я вот однажды прикольнулся и написал такой текст:(в приложении)
Сохранил его с расширением *.ехе в кодировке Unicode
Было штук несколько сообщений об ошибках, а потом началось:
курсор начал бешено бегать по экрану, а принтер,почухав головку,начал плеваться пустыми листами( Epson SC 660)
Было бы интересно узнать,что я такого написал, ведь я в асме ни бу-бу( а,может,Окнам не понравилось то, что я написал про BG?):-)
Приложение:
Отправитель: r00fless
Вопрос отправлен: 24.02.2002, 14:25
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32
_______________
Отвечает K.A. NiCK
Здравствуйте, r00fless!
У меня почему-т оне заработало Ж)
Отправлено: 24.02.2002, 15:11
Отправитель: K.A. NiCK (регистрация: 28/12/2001, ответов на счету: 180)
Вопрос № 584 |
Yo!
Я вот однажды прикольнулся и написал такой текст:(в приложении)
Сохранил его с расширением *.ехе в кодировке Unicode
Было штук несколько сообщений об ошибках, а потом началось:
курсор начал бешено бегать по экрану, а принтер,почухав головку,начал плеваться пустыми листами( Epson SC 660)
Было бы интересно узнать,что я такого написал, ведь я в асме ни бу-бу( а,может,Окнам не понравилось то, что я написал про BG?):-)
Приложение:
Отправитель: r00fless
Вопрос отправлен: 24.02.2002, 14:28
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает DiGiT
Приветствую Вас, r00fless!
Так там inc dx
imul bp,[si+6C],4720
popa
je 016E
jnb 012B
imul si,[bp+di+20],75
jnb 0186
imul sp,fs:[di+2E],68
jns 0159
push bx
sub gs:al,74
push 2065
Упрыгивает система куда-то. А там полная безнадега. А там далее вроде и с портами балуется... Короче любой бред даст тебе соответственный результат.
Отправлено: 26.02.2002, 10:14
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 236)
ICQ:133534725
Russia(),Student
_______________
Отвечает 10ck
Хай, r00fless!
Извини, но ты ЛАМЕР!!! EXE-файлы это файлы программные!!! Туда нужно Opcod'ы писать, а не всякую #$%ню! Все твои высказывания выполнялись как инструкции, я не удивлюсь, если ты себе так винт отформатируешь!
Отправлено: 26.02.2002, 10:32
Отправитель: 10ck (регистрация: 18/02/2002, ответов на счету: 32)
Россия, Нижний Новгород
Вопрос № 586 |
Уважаемые эксперты! Подскажите, какой более мощный процессор я могу вставить
в уважаемую мной "маму" для апгрейда?
MS-6163 Pro (82443BX/PIIX4E)
В Slot 1 через Noname переходник вставлен Celeron 433-боксовый.
Из инструкции: "CPU supports ... 500 MHz, and faster. ...
FSB 66.6; 100MHz and faster clocks are supported."
Отправитель: Игорь
Вопрос отправлен: 24.02.2002, 19:33
Подгруппа: Модели, виды и типы компьютеров (hard)
_______________
Отвечает DivX
Приветствую Вас, Игорь!
Судя по всему переходничек старый - нельзя будет втыкнуть, скажем, PIII/Celeron II Copermine, т.е. переходничек для первого модельного ряда Socket-370 Celeron'ов (366-533 МГц, но не Celeron 533A).
Решается проблема простой заменой переходника - у меня похожая мамка MS-6163 Master, с переходником для Copermine.
Отправлено: 25.02.2002, 06:56
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 205)
_______________
Отвечает Sensey
Доброе время суток, Игорь!
в BX маму после перепрошивки биоса вставляются Р3 до гигагерца
Отправлено: 25.02.2002, 11:14
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 311)
Тел.: (0572) 41-76-04 д.
ICQ 105679124
Украина, Харьков
_______________
Отвечает Александр
Добрый день, Игорь!
Ну на самом деле дешёвые переходники за 15 грина отличаются от дорогих, только тем, что они не имеют собственных трансформаторов и генераторов. То есть большая часть дешёвых переходников годна только на то, чтобы поддерживать возможности платы в смысле частоты и напряжения. Дорогие же, за 35 грина переходники позволят тебе воткнуть в твою мамку хоть Tualatin Celeron 1300. То что ты зачитал означает лишь, что память может работать на 66.6 или 100 МГц.
Отправлено: 27.02.2002, 15:45
Отправитель: Александр (регистрация: 28/12/2001, ответов на счету: 35)
Россия, Москва
Вопрос № 587 |
Здравствуйте все.
Столкнулся с проблемкой. Есть прога на асме в реальном режиме. Треба выйти из неё по любой клавише. Короче, решил перехватом 9-го прерывания. Сделал. Запускаю прогу из под винды - на всё реагирует кроме клавиши Win.
Перезагрузился в DOS, запускаю - есть реакция и на Win. Только по завершению проги машина конкретно виснет, видно клавиатура болкируется, восстановление вектора не происходит. Проверял в Турбо Дебаггере - всё отлично, всё встаёт на место.
Вопрос:
- куда девается прерывание в винде от клавиши Win
- куда девается восстановленый вектор в DOS, виснет ведь именно поэтому, так как прога благополучно завершается, сообщает об этом, но клавиатура после этого мертва.
P.S. Прога собсно ничего корме обработки ентого прерывания и выдачи месаги не делает. В своих комментариях прошу учесть, что я не ламер, и ответы типа "может ты где-то чего-то сам наглючил не нужны." Спасибо.
Отправитель: Евгений
Вопрос отправлен: 24.02.2002, 21:59
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Joker
Добрый день, Евгений!
Евгений было бы здорово приложить к вопросу текст обработчика, а то гадать приходится!
Итак если Вы не ламер, то должны знать, что аппаратные прерывания завершаются так
CLI
MOV AL,20h
OUT 20h,AL
;POP'им используемые регистры
IRET
Таким образом мы говорим PIC'у что прерывание завершилось и можно прерываться вновь этим же и менее приоритетными прерываниями.
Вообще оставить резидентным не только сам обработчик INT 9, но и код к-рый:
1) проверяет не переопределил ли кто INT 9 (хотя если не грузить клавный драйвер, то это маловероятно);
2) восстанавливает INT 9;
3) mov ah,4Ch
int 21h
Собственно обработчик должен перед своим завершением подкоректировать адрес возврата и вернуть упр-ние туда где лежит код, производящий выше описанные операции. Это будет тот же сегмент, что и у хэндлера, а смещение посчитай по размеру обработчика.
Под Windoй работает PM обработчик INT 9. Его ты не касаешься, поэтому WINDOвые сочетания клавиш типа Ctrl+Esc, Ctrl+Alt+Del - работают!
PS. Если не жалко кинь мне мылом свою прогу, и обрисуй для чего заморочки с выходом по любой клавише. jokeridze@tele-kom.ru.
Отправлено: 25.02.2002, 08:18
Отправитель: Joker (регистрация: 12/01/2002, ответов на счету: 21)
Россия, Волгоград
_______________
Отвечает Артём Шегеда
Доброе время суток, Евгений!
Извини, всё-таки ламер, раз такой вопрос задал. (не обижайся, мы все там были)
Клавиша Win, как и App, как и многие другие клавиши расширенной клавиатуры имеет скан-код длиной в несколько байт. Твоя прога хватает первый байт и, скорее всего, не отдаёт его старому обработчику. При этом теряется смысл последовательности. На этом работа BIOS'а твоей машины с клавиатурой заканчивается. (Это про второй вопрос)
По поводу первого. Винда перехватывает прерывания раньше любой запущеной проги (даже если это DOS-приложение). Программы уже получают события, а не прерывания. Что касается DOS'овских приложений, то это уже мастерство winoa386.mod - это он красиво эмулирует работу в реальном режиме. А клавишу Win (так же как и Ctrl-Alt-Del) винда никому не отдаст. И не жди.
Отправлено: 25.02.2002, 13:46
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 71)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков
_______________
Отвечает Александр
Привет Мистер ЁЖ.
Тебе посчастливилось позакомиться с одним интересным гибридом трояна и вируса. Насчёт его названия(winxxxx.exe) ты абсолютно прав. Кроме того, должен добавить, что он живёт в директории windows\system Для маскировки эта тварь на свой главный файл и на все им заражённые файлы ставит чохом аттрибуты Read Only, Hidden, System, Archive. Сам главный файл имеет датой создания время его попадания на компьютер. Но для маскировки датой изменения у него может выступать произвольная дата из прошлого :-). Кстати, поскольку это отчасти вирус, то загрузка в режиме защиты от сбоев может и не помочь, если ты по неведению запустишь зараженную программу. Так что готовь системную дискету или загрузочный CD-Rom. Хорошо бы, чтобы там был какой-нибудь файловый менеджер для ДОСа, идеально если это Norton Commander 5.0 Главное, чтобы эта программа могла изменять аттрибуты файлов или стирать файлы с такой "защитой" как я описал. Для определения "подозрительных" файлов я использовал команду dir в следующем виде:
dir /AASHR /s >>c:\virfiles.txt
Запускать её надо из корневой директории проверяемого жёсткого диска. В результате работы к файлу c:\virfiles.txt будет дописана информация обо всех файлах со всеми 4-мя установленными аттрибутами. Эти файлы имеют расширения отличные от EXE и являются, возможно, незаражённой версией соответствующего ему EXE-шника. А может и наооборот текстом заразы. Файл же с тем же именем, что и спрятанный, но с расширением EXE - это точно заразный файл. Как минимум надо искоренять все такие спрятяанные файлы и одноимённые им EXE-файлы. Кроме того для одной из заражённых программ эта тварь создала файл {name}mp8.exe ,где {name} - имя програмы. Его я тоже удалил. После того как ты избавишься от всех подозрительных файлов ты можешь перезагружаться в режиме защиты от сбоев и удалять в реестре запуск этой гадости. После перезагрузки эта тварь не должна восстановиться. Если что ещё о нём узнаю - расскажу.
P.S. Мои соседи попали как и ты, поскольку используют Oulook. Меня же эта участь избежала, поскольку The Bat! не выполняет скрипты в HTML-письмах.
P.P.S. А компьютер свой я заразил намеренно, чтобы лучше изучить повадки этого чуда.
P.P.P.S. Кто бы мог подумать - гибрид вируса и трояна размером более 80000 байт и написанный на VC++(слава богу хоть без MFC).
Отправлено: 25.02.2002, 13:46
Отправитель: Александр (регистрация: 28/12/2001, ответов на счету: 35)
Россия, Москва
_______________
Отвечает DiGiT
Приветствую Вас, Евгений!
Если ты имел ввиду что прога воркает, а на определенное сочетание завершается. Делай так: имеешь в этом обработчике условие выхода,делай далекий jmp на завершение твоей проги, предварительно считав из стека три слова. А перед выходом восстанови старый обработчик 09 прерывания, а потом сделай sti.
Можно завести переменную флаг, по установки которой происходит выход.
А клафиша вин она перехватывается все таки виндой ранее чем отдается твоему виртуальному режиму.
Отправлено: 26.02.2002, 10:05
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 236)
ICQ:133534725
Russia(),Student
_______________
Отвечает 10ck
Хай, Евгений!
1)Возможно, клавиша WIN зарезервирована для винды, и если запускать прогу в ДОС-окне, она эту клавишу не понимает.
2)Зачем перехватывать прерывание?! Можно просто написать:
xor ax, ax
int 16h
и прога будет ждать нажатия любой клавиши.
Отправлено: 26.02.2002, 10:29
Отправитель: 10ck (регистрация: 18/02/2002, ответов на счету: 32)
Россия, Нижний Новгород
_______________
Отвечает Ayl
Добрый день, Евгений!
Конечно, было бы неплохо посмотреть на вашу прогу, но попробую ответить и так.
1. Под Win несмотря на ваш обработчик клава сначала все равно обрабатывается системой. Именно поэтому и происходит "потеря" спецклавиш. Бороться с этим не получиться...
2. А вот под Dos все должно работать, только я подозреваю, что у вас в конце обработчика нет следующих команд:
mov al, 20h
out 20h, al
которые сбрасывают контроллер прерываний и разрешают обработку новых прерываний от различных устройств, в т.ч. и от клавы.
Отправлено: 26.02.2002, 17:51
Отправитель: Ayl (регистрация: 28/12/2001, ответов на счету: 161)
Россия, Санкт-Петербург
Вопрос № 588 |
Здравствуйте Эксперты!
У меня проблема с IE 5.5, при нажатии скачать любой файл у меня закрывается активное окно браузера.... как избавиться от этого?
Отправитель: Владимир
Вопрос отправлен: 24.02.2002, 23:09
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает Tiger
Здравствуйте, Владимир!
Попробуйте переставить ИЕ. Может поможет. Хотя я слышал, что 5.5 глючная штукенция. Попробуйте поставить 5.0, а лучше всего используйте Оперу, она побыстрее будет!!
Отправлено: 25.02.2002, 00:08
Отправитель: Tiger (регистрация: 28/12/2001, ответов на счету: 117)
URL: http://www.tigeer.narod.ru - Что-то вроде того
_______________
Отвечает DiGiT
Приветствую Вас, Владимир!
Ставь другой браузер Опера например. Хотя все работает у меня с ИЕ. Если особо волнует спроси БГ.
Отправлено: 26.02.2002, 09:53
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 236)
ICQ:133534725
Russia(),Student
Вопрос № 566 |
Привет эксперты!
Подскажите, где можно скачать tasm32, link32.
Заранее спасибо
Отправитель: Alexandr (sasha@exso.com.ua)
Вопрос отправлен: 22.02.2002, 19:05
Подгруппа: Работа с MASM/TASM
_______________
Отвечает K.A. NiCK
Доброе время суток, Alexandr!
www.wasm.zite.ru - там или в Библиотеке или в Тулсах .НЕ помню.
Отправлено: 22.02.2002, 20:17
Отправитель: K.A. NiCK (регистрация: 28/12/2001, ответов на счету: 180)
_______________
Отвечает BMR
Добрый день, Alexandr!
http://www.dore.ru/files/compilers/index1.shtml
Отправлено: 22.02.2002, 20:36
Отправитель: BMR (регистрация: 10/02/2002, ответов на счету: 68)
Россия, Пенза
Вопрос № 495 |
Приветствую всех кто читает это послание.У меня проблемка
очень часто зависает комп особенно при работе с игрушками железо в принципе нормальное пентиум 3-й.Заранее спасибо
Отправитель: миргасан
Вопрос отправлен: 19.02.2002, 00:00
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает Frank
Приветствую Вас, миргасан!
А как насчет перегрева?
Проверь температуру на процике, видяхе, чипсете. Для этого можешь залезть в биос и посмотреть там температуру проца. Также есть достаточное количество прог, которые следят за этим всем делом, например Motherboard Monitor Ver 5.xx.
Отправлено: 19.02.2002, 05:53
Отправитель: Frank (регистрация: 14/01/2002, ответов на счету: 74)
КПИ,ФЭЛ,ДА-02
ICQ: 100341415 E-mail: Frank_U@mail.ru
Украина, Киев
_______________
Отвечает DiGiT
Добрый день, миргасан!
Либо вирь, либо ось, либо железо. Третьего не дано. У меня например мать на чипе AMD761 виснет в игрухах. Оказалось амдешный чип фиговый виа лучше. Но фиг с ней я почти не гамезюсь. Вот три причины какая из них смотри на месте.
Отправлено: 19.02.2002, 09:07
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 236)
ICQ:133534725
Russia(),Student
_______________
Отвечает Sensey
Доброе время суток, миргасан!
Перегрев
Проверяется так:
Открываешь системник и ставишь рядом вентилятор, чтобы внутрь дул
Если перестанет зависаьт тогда
Добавь кулер на видуху, смени на проце
Если охлаждение не поможет, что врядли, смотри в дровах...
Отправлено: 19.02.2002, 10:29
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 311)
Тел.: (0572) 41-76-04 д.
ICQ 105679124
Украина, Харьков
_______________
Отвечает 10ck
Привет миргасан!
Конкретизируй свой вопрос - какие игрушки, как зависает, подробнее о компе...
Если игрухи под ДОС - в вие они могут глючить, нужно перегрузиться в дос.
Может быть ты разогнал свой проц? тогда сбрось немного частоту или поставь хороший кулер.
Без отсутствия информации больше сказать ничего не могу.
Отправлено: 19.02.2002, 14:12
Отправитель: 10ck (регистрация: 18/02/2002, ответов на счету: 32)
Россия, Нижний Новгород
_______________
Отвечает Painbringer
Добрый день, миргасан!
пока ты не скажешь конфигурацию своего компа с "в принципе нормальным железом" никто тебе ничего не скажет. скорее всего глючит память или видюха.
Отправлено: 19.02.2002, 21:06
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 357)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы
ICQ 146861957
Россия, Дзержинск, Нижегородская обл.
_______________
Отвечает kostik
Добрый день, миргасан!
Нет! Ну как тут ответишь на вопрос! Абсолютно нет никаких данных! От чего отталкиваться, не знаю! Уважаемый читатель! Задайте свой вопрос заново, указав кофигурацию компьютера (только нормально а не выражение "пентиум 3-й"), под какой ОС работаете, какие именно программы вызывают зависание компьютера и т.д. То есть конкретизируйте вопрос свой
Отправлено: 21.02.2002, 15:31
Отправитель: kostik (регистрация: 01/02/2002, ответов на счету: 55)
URL: http://www.ospedia.boom.ru - Что-то вроде домашней странички
mrkirov@mail.ru ICQ UIN #151014798
Россия, Хабаровск
_______________
Отвечает Tiger
Здравствуйте, миргасан!
А переставлять Винду пробовал? Если пробовал, то посмотри, нет ли у тебя кнфликтов в устройствах. Щелкаешь правой кнопкой на "Мой компьютер"->Свойства и вкладка "Устройства". Если есть восклицательные знаки - это конфликты. Попробуй установить правильные драйвера.
ну и еще одно предположение - это перегревается процессор. Тоже может быть. Тогда все вопросы к кулеру. :))) Хотя, если говоришь, что глючит на игрухах, то скорее всего это не проц, а видяха. В ней поищи причину (может тот же самый кулер).
Отправлено: 21.02.2002, 21:09
Отправитель: Tiger (регистрация: 28/12/2001, ответов на счету: 117)
URL: http://www.tigeer.narod.ru - Что-то вроде того
_______________
Отвечает rusty knight
Здравствуйте, миргасан!
Уменя така проблема наблюдалась пока не поменял память. Один DIMM глючил.
Отправлено: 23.02.2002, 12:09
Отправитель: rusty knight (регистрация: 13/02/2002, ответов на счету: 10)
Вопрос № 510 |
Здравствуйте, эксперты!
Как в Винде убрать прогу с панели задач? Как убрать панель задач? Желательно примерчик для С++ Builder.
Заранее благодарю!
Отправитель: Эдуард
Вопрос отправлен: 20.02.2002, 00:57
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает DiGiT
Добрый день, Эдуард!
HANDLE hTaskBar=FindWindow("Shell_TrayWnd",NULL);//хэндл панели задач
ShowWindow(hTaskBar,SW_HIDE);
HANDLE hProgMan=FindWindow("Progman",NULL);
SetParent(hWnd,hProgMan);//на таскбаре нету кнопки окна
Отправлено: 20.02.2002, 09:34
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 236)
ICQ:133534725
Russia(),Student
_______________
Отвечает Blackeye
Добрый день, Эдуард!
Все элементарно просто, к сожалению для C++ Builder, примера нет (лень переводить на C++), но на Паскале для Delphi есть, я думаю вы сами легко разберетесь (если что пиши на blackeye@mail.zp.ua - переведу)
1.Панель задач - ДОЛОЙ!
ShowWindow(FindWindow('Shell_TrayWnd',nil),SW_HIDE); - для Builder'a подойдет //спрятать панель
ShowWindow(FindWindow('Shell_TrayWnd',nil),SW_SHOW);//показать панель
2. Прога с панели - ДОЛОЙ!
пример из *.dpr файла
program Project1;
uses
Forms,
Windows,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
var
ExtendedStyle : integer;
begin
Application.Initialize;
ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
SetWindowLong(Application.Handle, GWL_EXSTYLE,
ExtendedStyle or WS_EX_TOOLWINDOW {AND NOT WS_EX_APPWINDOW});
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Отправлено: 20.02.2002, 19:11
Отправитель: Blackeye (регистрация: 15/02/2002, ответов на счету: 23)
URL: http://www.soft4master.h1.ru - Delphi, my programms...
Украина, Запорожье
Форма отправки сообщения |
Заполните приведенную ниже форму для того, чтобы отправить вопрос. Дополнительную информации по пользованию формой для подписчиков и экспертов можно получить, нажав на знак вопроса в соответствующем разделе, при этом информация будет отображена в отдельном окне.
В почтовых программах форма не работает!!! Открывайте рассылку в браузере Internet Explorer, где и набирайте Ваш вопрос.
© 2000 - 2002 Россия, Москва. Авторское право: Калашников О. А. |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||