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

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 629
от 30.08.2003, 23:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 4058
Отправлено ответов: 12021
Активность: 296.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Fantomas
Статус: Доверительный
Общий рейтинг: 118.18
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 120.77
URL: мой сайт
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.02
URL: Программирование
[Подробней >>]
 
wolf_2k
Статус: Опытный
Общий рейтинг: 112.85
[Подробней >>]
Lynx
Статус: Профессиональный
Общий рейтинг: 116.89
Телефон: (8442) 750522
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 113.08
[Подробней >>]
 
dimka
Статус: Опытный
Общий рейтинг: 137.81
Телефон: (231)-4-43-85
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 121.1
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 148.68
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 134.27
[Подробней >>]
[L2]Max
Статус: Опытный
Общий рейтинг: 125.32
Телефон: (0562) 323428
[Подробней >>]
St
Статус: Профессиональный
Общий рейтинг: 106.65
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 117.76
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 112.9
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 4004. Здравствуйте! Compuware SoftICE Driver Suite 3.0.1 on ftp

... (ответов: 3)
Вопрос № 4005. Вчера разговаривал с одним человеком (он занимается программированием на заказ), который вроде знает... (ответов: 9)
Вопрос № 4006. Не вопрос. Анализ вопроса 3971 и ответов к нему. The numerical value of a set bit is equal to two ra... (ответов: 4)
Вопрос № 4007. Приветствую всех экспертов ! Ну не вижу я ошибку и ВСЕ !!! Ну нет ее, понимаете все должно работать.... (ответов: 6)
Вопрос № 4008. Столкнулся с проблемой... Нужно пропатчить PE заголовок в памяти, т.е. разрешить на запись адреса 40... (ответов: 3)
Вопрос № 4009. Уважаемые эксперты! Такой возник вопрос: Есть ли какое-нибудь сообщение которое посылается процеду... (ответов: 6)
Вопрос № 4010. при написании ml.exe prog001.asm /AT выдает ошибку masm : fatal error A1020: cannot find link.exe MA... (ответов: 5)
Вопрос № 4011. Здравствуйте, эксперты ! Недавно я писал: >Приветствую всех экспертов ! >Ну не вижу я ошибку и ВСЕ !... (ответов: 4)
Вопрос № 4012. Здравствуйте! Я тут использую ftp.exe микрософтовскую чтобы аплодить файлы на ftp. Она работает в ко... (ответов: 2)


Вопросов: 9, ответов: 42


 Вопрос № 4004

Здравствуйте!
Compuware SoftICE Driver Suite 3.0.1 on ftp

h*tp://0daycn.net/0daycn/vNNGwOwvvdvHoNGoGxcvHvG.htm
 



Правая папочка сверху.


Приложение:


Вопрос отправлен: 25.08.2003, 23:55
Отправитель: Илья (b.i@date.by)

[Следующий вопрос >>] [Список вопросов]

Отвечает Fantomas

Добрый день, Илья!
К чему ???
А на RusFaq.ru есть форум по ассемблеру !
Зайди на http://www.RusFaq.ru, 7 строчка сверху.
И что теперь ?

Ответ отправлен: 26.08.2003, 01:21
Отправитель: Fantomas


Отвечает Broken Sword

Добрый день, Илья!
если кто то скачает - сообщите плз на brokensword@mail.ru есть ли там че то новое кроме навороченной удаленной отладки и интеграции в NET


Ответ отправлен: 26.08.2003, 10:56
Отправитель: Broken Sword


Отвечает Bob Johnson

Добрый день, Илья!
Еще было бы здорово как-либо скачать его с помощью Get Right, а то там хитро придумано, что сервер отвечает Object Moved и в это же время выставяет Set Cookie. А Get Right если Object Moved еще понимает, то на Cookie внимания не обращает.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 26.08.2003, 15:43
Отправитель: Bob Johnson


 Вопрос № 4005

Вчера разговаривал с одним человеком (он занимается программированием на заказ), который вроде знает ассемблер. Услышал с его стороны такую фразу: "Ассемблер? Ассемблер - это хорошо. Я иногда пишу на ассемблере. Ядро windows написано на ассемблере, а часть - даже в машинных кодах!"
Хотелось бы услышать ваши комментарии...
Пока!



Вопрос отправлен: 26.08.2003, 02:21
Отправитель: Robert Johnson

[Следующий вопрос >>] [Список вопросов]

Отвечает wolf_2k

Здравствуйте, Robert Johnson!
Если бы ядро было бы написано наполовину в маш кодах и асемблере оно бы не было таким медленным ты его дизасмь там пол ядра это защита от отладки и дизасма (мелкомягкие блин)что то более уродское найти сложно вон линукса молодцы и исходники есть и багов поменьше


Ответ отправлен: 29.08.2003, 05:27
Отправитель: wolf_2k


Отвечает Lynx

Доброе время суток, Robert Johnson!
Бред!!! Ассемблер и машинный код - не одно и тоже ли? :)
ИМХО ядро виндовс писалось на C//C++, может быть какие нить участки и на асме. :)


Ответ отправлен: 27.08.2003, 10:41
Отправитель: Lynx


Отвечает Fantomas

Приветствую Вас, Robert Johnson!
Я считаю, что он подлец ! :-)

Ответ отправлен: 26.08.2003, 03:32
Отправитель: Fantomas


Отвечает ASMодей

Добрый день, Robert Johnson!
Скорее всего, Windows написана на C++, и только некоторые части, возможно на ассемблере. Насчет машинных кодов я очень сомневаюсь: ни одному нормальному человеку (особенно в Microsoft) сегодня в голову не придет писать программы напрямую в машинных кодах.

Ответ отправлен: 26.08.2003, 07:17
Отправитель: ASMодей


Отвечает Broken Sword

Добрый день, Robert Johnson!
да, мужик шарит :)


Ответ отправлен: 26.08.2003, 10:39
Отправитель: Broken Sword


Отвечает dimka

Здравствуйте, Robert Johnson!
On pridurak!!!
Iadro Win'a napisano na C/C++,konecino,ne bez Assemblera,Nu citobi mashinnie kodi!!!...


Ответ отправлен: 26.08.2003, 11:44
Отправитель: dimka


Отвечает _vt

Добрый день,(RusFAQ глючит - ночь!) Robert Johnson!
Если ты теперь Robert, наверное, стал совершеннолетним в собственных глазах! Но это - offtopic!


Тут комментарии излишни, могу добавить от себя: я некоторое время подрабатывал ночью в магазине, продавал водку и стаканчики, и при этом общался с большим количеством незнакомых мне людей... Так как магазин находится в здании представительства союза художников России, то многие "клиенты" представлялись "
художниками-иконописцами" и на протяжении нескольких часов в состоянии пьяного угара рассказывали о своих величайших работах, сделанных ими в прошлом и о будующих творениях, на которые они получили заказы... При этом, козыряя тем, что они знают "всех художников по именам" требовали у продавцов, не относящихся к Дому Художников, бесплатного пива... Если при этом присутствовал кто-то из работающих художников, он посылал этих "иконописцев" подальше, да так что они еще не скоро появлялись...
Также среди клиентов попадались и "
Крутые Хакеры", знающие "любой язык программирования" и взламывающие каждый день по нескольку сайтов, причем на вопрос о том, что за сайт он сломал, такой человек отвечал, что "не помню, по-моему, какая-то газета". При этом он рассказал, что на сервере этого издательства "много интересного: счета и прочая бухгалтерия". Так же он рассказывал про языки программирования: что пишет он программы понемногу на всех языках, нравится ему Паскаль, но у него есть один недостаток:
"
легко ломается"(!!!???!!!)...
Встречались и гибриды: "
я вообще-то художник, по профессии я электромонтер, а в данный момент программист: собираю компьютеры"(!!!!) . Когда я ему сказал, что тоже немного "программист", он сильно обрадовался и захотел со мной выпить... Услышав отказ, он попросил помощи: "Тут вот у меня есть старая "четверка" у нее что-то с модулями памяти, а как проверить какой не работает - незнаю..." Услышав, что модули можно проверить или вытаскиванием по одному или программным путем, он обрадовался: " Как я сам не догадался!" Пообещал купить мне у меня завтра пива, исчез и так и не появился... Правда я сильно сомневаюсь, что в "четверке" можно ставить модули по одному... :-) Может, конечно, не получилось, обиделся...:-)
Да, когда я писал тебе насчет приколов в рассылке по NT, произошел очень веселый прикол: там один "Гидроэколог" задавал вопрос о том, что у него с NT AUTHORITY SYSTEM, ему посоветовали скачать патч против W32.HLLW.Lovesan. Следующим вопросом он всех поблагодарил сказал о том, что он и не думал о вирусе, раз у него Norton Antivirus, и тут же начал жаловаться, что теперь компьютер тормозит: он с секундомером(!) засекал время запуска XP, ему "надоело" и он ушел пить кофе... Я ему осторожно(!) посоветовал попробовать удалить Norton Antivirus, сказав о том что у меня после патча система работает только быстрей и что я думаю, что дело в антивирусе, особенно если он его так и не обновил... И в два часа ночи (отправил он его в 23:56) получаю вопрос лично мне, но посланный всем экспертам - уважаемый, вы типа прикрываясь статусом эксперта, даете ложную мне информацию, "
и хотя нисколько не хочу вас обидеть, хочу поздравить с тем, что вам везет с продуктами Microsoft"... Да, и он хоть и не эксперт, " но все же достаточно опытный пользователь, чтобы самостоятельно обновлять такие продукты как Norton Antivirus, и дело здесь именно в кривом патче, как я понял из ответов большинства аналитическим методом"(!!!) Цитирую не совсем дословно, но суть не меняется... :-( Хорошо хоть он после моего личного письма к нему признал, "Это очень здорово, что Вы (ты) проанализировал(и) мое ядовитое письмо"...

---===*** Updated E-Man 1.5 - it's cool!***===---


Ответ отправлен: 26.08.2003, 13:10
Отправитель: _vt


Отвечает Евгений Иванов

Доброе время суток, Robert Johnson!
Ядро, может быть...
Но всё остальное на чистых С++.


Ответ отправлен: 26.08.2003, 13:29
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Добрый день, Robert Johnson!
Ну вот и мне понравилось :) Это надо будет запомнить :)
> Отвечает _vt
> Если ты теперь Robert, наверное, стал совершеннолетним в собственных глазах!
Да ладно, я всегда буду молод в душе! (к тому же ты разве забыл, что rusfaq не существует, а я лишь информационное воплощение электрической энергии, протекающей в цепях большого такого робота системы).
> нравится ему Паскаль, но у него есть один недостаток: "
легко ломается"(!!!???!!!)...
:) Да, это тоже следует запомнить...
> Правда я сильно сомневаюсь, что в "четверке" можно ставить модули по одному...
Смотря какие - 8-ми разрядные (30-пиновые) - нельзя. Их надо два в SX (там 16-разрядная шина) и 4 в DX (тут 32-х разрядная). А вот 32-разрядные (72-пиновые) - можно. Парами их стали ставить в Pentium, т.к. в нем 64-разрядная шина.
> ему посоветовали скачать патч против W32.HLLW.Lovesan
А вот это зря :) Ему надо было советовать установить "Welchia" (http://www.kaspersky.ru/news.html?id=1321286, http://www.kaspersky.ru/news.html?id=1321905). :)


На счет своего же вопроса - думаю, что именно ядро в виндах написано на асме, т.к. в его задачу входит переключение потоков, сохранение регистров и т.д. Это трудно (да и бессмысленно) реализовывать на С++. Все же остальное - с наибольщей вероятностью пипи, т.к. ms асм не очень-то ценит.
Ну а чтобы в машинных кодах...
> да, мужик шарит :)
Вот именно :)

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 28.08.2003, 12:26
Отправитель: Bob Johnson


 Вопрос № 4006

Не вопрос.
Анализ вопроса 3971 и ответов к нему.
The numerical value of a set bit is equal to two raised to the power of the bit position
Да...
Насчёт "группы битов" некоторые ошиблись. Всё же это один бит!
a set bit - приставка a (one). Конкретный бит!
По моему, лучшие ответы у
Bob Johnson,
Ramzes,
Portnov,
Но наиболее точно попал в точку vitya:
"вес бита в i-ой позиции равен 2 возведеной в степень i".
Я же лично не писал в рассылку, а почему то ответил личным письмом (чё это я так? :-)
Ответил тоже неточно!
"Числовое значение набора битов равно двойке, возведённой в степень битовой
позиции".
Так что учимся дальше!



Вопрос отправлен: 26.08.2003, 02:22
Отправитель: Eugene Ivanov (Eugene_Ivanov@mail.nnov.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Fantomas

Не ответ.
Просто воспользуюсь моментом... :-)
Здравствуйте, Администрация!
ЗАЯВЛЕНИЕ !
Ув. Калашников О.А.
Я, эксперт Fantomas, со статусом Начальный, прошу Вас
повысить меня по званию за доблестные заслуги по програмированию на языке Assembler. :-)
______
Секретарь: _____________ Дата 26.0|8.03 |
|Печать|
Администратор: _ _ _ _ _ |______|

Доброй ночи !




Ответ отправлен: 26.08.2003, 03:32
Отправитель: Fantomas


Отвечает _vt

Здравствуйте, Eugene Ivanov!
Несколько тонкий намек в мою сторону, но я тоже заметил свою неточность!!! Так что, действительно:
> учимся дальше!

---===*** Updated E-Man 1.5 - it's cool!***===---


Ответ отправлен: 26.08.2003, 05:30
Отправитель: _vt


Отвечает dimka

Доброе время суток, Eugene Ivanov!
A cito za vopros???


Ответ отправлен: 26.08.2003, 11:49
Отправитель: dimka


Отвечает Bob Johnson

Добрый день, Eugene Ivanov!
Я знаю, почему у меня хороший ответ - это все из-за слова "fuck", которое в нем было. Брат одного моего знакомого ездил в америку и я у него спросил, трудно ли там разговаривать на их языке. Он ответил, что самое главное - это "fuck", остально выучишь!
Кстати, другой человек, который ездил в Англию (точнее - Лондон), сказал, что "fuck" по уровню экспрессии соответствует нашему "хрен". Что когда англичане едут в метро и поезд как-то там резко дергается, многие из них говорят "fuck", "what the fuck" etc.
С другой стороны, в английском языке вообще нет отдельных слов, сравнимых по экспрессии с нашими.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 26.08.2003, 15:37
Отправитель: Bob Johnson


 Вопрос № 4007

Приветствую всех экспертов !
Ну не вижу я ошибку и ВСЕ !!!
Ну нет ее, понимаете все должно работать.
После выполнения нижеприведенной программы
в текствовом поле должна появиться цифра 3,
т.к. 1 и 2 проскакивают быстро и их не реально
заметить, а появляются вообще какие-то иероглифы.
В чем же дело ?


Приложение:


Вопрос отправлен: 26.08.2003, 02:41
Отправитель: Fantomas (f-a-n-t-o-m-a-s@ukr.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Добрый день, Fantomas!
Это не будет работать, как хотел.
push offset [dbEnumNumbers+ecx]
Нужно так:
lea edx, [dbEnumNumbers+ecx]
push edx

Бывай!


Ответ отправлен: 26.08.2003, 13:34
Отправитель: Евгений Иванов


Отвечает _vt

Приветствую Вас, Fantomas!
Извини за выражение, ни хрена не понятно:
1) чем ты это чудо компилил? Ни masm, ни tasm, а тем более ни nasm и не fasm твое творение не поняли (равно как и я!). Судя по экспорту функций, должен быть tasm...
2) ладно, допустим что-то скомпилилось: скажи, пожалуйста,
а)
где в моей системе находится текстовое поле, чей хэндл ты мне предоставляешь в виде адреса?
б) если все остальное правильно, то объясни мне, как программа выйдет из цикла, вначале которого в стек пихается ecx(=0), в конце цикла он оттуда забирается обратно в ecx(опять ecx=0!) и сравнивается с 4!! После чего разрешается выйти из цикла, если 0=4 ???
Диагноз: видимо, вредно для организма постоянное сидение ночью за компьютером... Только в 2:41 могут родится такие шедевры! :-)

---===*** Updated E-Man 1.5 - it's cool!***===---


Ответ отправлен: 26.08.2003, 05:30
Отправитель: _vt


Отвечает Broken Sword

Добрый день, Fantomas!
mov eax,4063820 ;hWnd текстового поля
:(
это ты в WinSPY посмотрел? или в отладчике?
hWnd все время меняется, ты можешь узнать хендл по ID контрола (ID контрола постоянен). Я не помню эту API (что то типа GetWindowHandleByID), но там тебе нужно будет еще знать хендл главного диалога (эта GetActiveWindow)
но если выводиться что-то, но не то что ты хочешь, значит ищи ошибку здесь:
push offset [dbEnumNumbers+ecx]
или в порядке передачи параметров

Ответ отправлен: 26.08.2003, 10:37
Отправитель: Broken Sword


Отвечает masquer

Приветствую Вас, Fantomas!
Почитай на досуге туториалы икзелиона, потому как долго объяснять - где там ошибка - весь код одна сплошная ошибка.

Ответ отправлен: 26.08.2003, 11:16
Отправитель: masquer


Отвечает dimka

Приветствую Вас, Fantomas!
!!!!!!!!
pishi po-novoi!!


Ответ отправлен: 26.08.2003, 11:56
Отправитель: dimka


Отвечает Bob Johnson

Добрый день, Fantomas!
...б*я...
> Ну нет ее, понимаете все должно работать.
Посмотри в отладчике, что у тебя компилируется вместо push offset [dbEnumNumbers+ecx]... Нет такой команды.
Да и откуда ты берешь hWnd в виде конкретного числа.
В общем, делай так:

mov esi, offset dbEnumNumbers
m1:
push esi
push 0
push WM_SETTEXT
push hwnd
Call SendMessageA
add esi, 2
cmp esi, offset dbEnumNumbers + 6
jnz m1

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 26.08.2003, 15:26
Отправитель: Bob Johnson


 Вопрос № 4008

Столкнулся с проблемой...
Нужно пропатчить PE заголовок в памяти, т.е. разрешить на запись адреса 400000h-401000h, именно в памяти, а не копируя его куда то и записывая в файл. Можно ли это сделать не переходя в ring0?
Если нет, то не подскажите где взять описание vxd ф-ий, и что почитать по переходу в ring0...



Вопрос отправлен: 26.08.2003, 04:56
Отправитель: Maverick (Maverick@nightmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Lynx

Доброе время суток, Maverick!
Ты хочешь, что бы процесс 3-го уровня привелегий писал в память куда ему вздумается??? :) Не выдет. Можно написать драйвер псевдоустройства, который тебе всё сделает!


Ответ отправлен: 27.08.2003, 10:41
Отправитель: Lynx


Отвечает Broken Sword

Доброе время суток, Maverick!
знаешь, Maverick, помоему ring0 здесь ни при чем. Просто тебе нужен PE-Editor (для изменение атрибутов секции .text на Writeable :)

Ответ отправлен: 26.08.2003, 10:26
Отправитель: Broken Sword


Отвечает Bob Johnson

Приветствую Вас, Maverick!
Ну что, тебе помогло VirtualProtect?

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 28.08.2003, 12:31
Отправитель: Bob Johnson


 Вопрос № 4009

Уважаемые эксперты!
Такой возник вопрос:
Есть ли какое-нибудь сообщение которое посылается процедуре окна
когда курсор мыши находится над контролом (кнопкой)?
Заранее спасибо :).
Ramala.



Вопрос отправлен: 26.08.2003, 14:08
Отправитель: Ramala

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Доброе время суток, Ramala!
WM_MOUSEMOVE.



Ответ отправлен: 27.08.2003, 02:16
Отправитель: Евгений Иванов


Отвечает [L2]Max

Здравствуйте, Ramala!
Может и есть, но вряд ли, используй ф-ю получения координат

Ответ отправлен: 27.08.2003, 05:14
Отправитель: [L2]Max


Отвечает masquer

Добрый день, Ramala!
Например, WM_MOUSEMOVE. А вообще их больше, конечно.

Ответ отправлен: 26.08.2003, 15:09
Отправитель: masquer


Отвечает Bob Johnson

Приветствую Вас, Ramala!
Тогда этому контролу посылается WM_MOUSEMOVE (когда она двигается). Если контрол что-либо переправит (relay) главному окну, то ему придет, иначе - нет.
Но ты можешь в message loop вставить проверку, что если идет сообщение WM_MOUSEMOVE и не главному окну, то перевести его координаты в координаты главного окна и послать главному окну другое сообщение.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 26.08.2003, 15:19
Отправитель: Bob Johnson


Отвечает Fantomas

Здравствуйте, Ramala!
Есть такая программа WinSpy.
Она поставляется в комплекте с MSVC++
Запусти ее и посмотри !!! Там ты увидишь не только
какое сообщение, но позицию курсора и hWnd и Dc и
все на свете !


Ответ отправлен: 26.08.2003, 19:00
Отправитель: Fantomas


Отвечает St

Привет, Ramala!
Может быть WM_MOUSEMOVE?
St


Ответ отправлен: 27.08.2003, 14:48
Отправитель: St


 Вопрос № 4010

при написании ml.exe prog001.asm /AT выдает ошибку
masm : fatal error A1020: cannot find link.exe
MASM v 6.2 установил, установка прошла нормально.
WinXPen sp1
P4 1.7
RAM 328 mb



Вопрос отправлен: 26.08.2003, 14:52
Отправитель: Shagrath (vancouver@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Здравствуйте, Shagrath!
Ставь в пути.


Ответ отправлен: 27.08.2003, 02:15
Отправитель: Евгений Иванов


Отвечает dimka

Добрый день, Shagrath!
Твой фаил должен находиться в одной папке с Masm'ом(link,masm...)


Ответ отправлен: 29.08.2003, 10:20
Отправитель: dimka


Отвечает Ayl

Здравствуйте, Shagrath!
Пропиши в PATH каталог, где установлен MASM или скопируй свой файл в директорию с MASM'ом.

Ответ отправлен: 26.08.2003, 16:02
Отправитель: Ayl


Отвечает [L2]Max

Приветствую Вас, Shagrath!
У тебя в папке bin отсутствует линкер, попробуй заново поставить

Ответ отправлен: 27.08.2003, 05:16
Отправитель: [L2]Max


Отвечает _vt

Приветствую Вас, Shagrath!
Ну так он не находит файл link.exe который ему необходим... Можно поступить проще, но объясню как сделать, чтобы этого никогда не повторялось...
Нажимаешь WIN+Break, открываются свойства системы. Ищешь вкладку "Дополнительно" и там кнопочку "Переменные среды". Появится окно "Переменные среды" (могу немного ошибаться, может в ХР немного по другому называется, но суть не меняется)
Ищешь в переменных средах для текущего пользователя переменную
PATH (если нет - создай!) и нажимаешь "изменить..." Если она уже была, увидишь список папок в которых ml.exe ищет link.exe. Если ты устанавливал MASM на диск С:, то допиши в список через точку с запятой
C:\MASM\BIN
Теперь закрывай все окна, связанные с переменными средами, и запускай ml.exe снова... Все должно работать, и теперь не надо копировать в папку с текстом программы файлы ml.exe и link.exe

---===*** Updated E-Man 1.5 - it's cool!***===---


Ответ отправлен: 27.08.2003, 01:03
Отправитель: _vt


 Вопрос № 4011

Здравствуйте, эксперты !
Недавно я писал:
>Приветствую всех экспертов !
>Ну не вижу я ошибку и ВСЕ !!!
>Ну нет ее, понимаете все должно работать.
>После выполнения нижеприведенной программы
>в текствовом поле должна появиться цифра 3,
>т.к. 1 и 2 проскакивают быстро и их не реально
>заметить, а появляются вообще какие-то иероглифы.
>В чем же дело ?
Только для глаз _vt:
-----------------------------
?>чем ты это чудо компилил?
!>Turbo Assembler !!!
?>где в моей системе находится текстовое поле, чей хэндл ты мне предоставляешь в виде адреса?
!>Смысл был не в том, чтоб получить hWnd а в том, почему
программа работает не верно !!! Я задаю конкретный
вопрос, по конкретному участку программы. Может надо
было еще и Windows.inc вложить ??? :-)
?>если все остальное правильно, то объясни мне, как программа выйдет из цикла, вначале которого в стек пихается ecx(=0), в конце цикла он
оттуда забирается обратно в ecx(опять ecx=0!) и сравнивается с 4!! После чего разрешается выйти из цикла, если 0=4 ???
!>Так и выйдет ! Если в ecx будет 4 !
?>Диагноз: видимо, вредно для организма постоянное сидение ночью за компьютером... Только в 2:41 могут родится такие шедевры! :-)
!>Нет, раньше, т.к. в 2:41 я его уже отправил ! :-)
Только для глаз Broken Sword:
-----------------------------
?>это ты в WinSPY посмотрел? или в отладчике?
!>В WinSpy !
?>hWnd все время меняется,
!>А как это ??? А пчему он не один на все окна ???? =)
!>На самом деле я все это прекрастно понимаю, но и ты
!>меня пойми, зачем писать лишний код ? Кому интерестно
!>сидеть и разгребать чужой код ???
?>значит ищи ошибку здесь: push offset [dbEnumNumbers+ecx]
!>Не думаю, эта инструкция меня еще ни разу не подводила !
!>Я думаю, это все SendMessageA портит !
Только для глаз masquer:
-----------------------------
?>Почитай на досуге туториалы икзелиона, потому как долго объяснять - где там ошибка - весь код одна сплошная ошибка.
!>Почему это весь код одна сплошная ошибка ? Дожился,
что теперь код, который я писал своими собственными руками
называют один большой глюк. Обидно... :-)
Только для глаз dimka:
-----------------------------
?>pishi po-novoi!!
!>Спасибо, у тебя был самый содержательный ответ ! :-)
Только для глаз Евгения Иванова:
-----------------------------
?>Это не будет работать, как хотел.
?>push offset [dbEnumNumbers+ecx]
?>Нужно так:
?>lea edx, [dbEnumNumbers+ecx]
?>push edx
!>Спасибо, обязательно попробую, но это не выход !
!>Ведь это же не первый мой цикл, который считывает
!>из массива. Я же 100 раз использовал такой вариант
!>и все работало ! Здесь проблема в SendMessageA, вот
!>посмотри через SoftIce, происходит збой при втором
!>вызове этой функции, когда в ecx находится "2".
Только для глаз Bob Johnson:
--------------------------------
?>...б*я...
!>А это что значит ? "бля" ?
!>Боб, ты что был зол, когда отвечал на мой вопрос ? :-)
?>Да и откуда ты берешь hWnd в виде конкретного числа.
!>Это чтоб лишний код не посылать !!!!!!!
!>Спасибо, за код, попробую !
=======================================================
Спасибо за внимание !


Приложение:


Вопрос отправлен: 26.08.2003, 18:51
Отправитель: Fantomas

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Здравствуйте, Fantomas!
Используй SendDlgItemMessage.
И чего ты постоянно пытаешься сделать как-то наизнанку всё, когда есть
прямые пути!
Насчёт того, что писал _vt по поводу выхода:
Будет работать и он выйдет, потому что ниже идёт add ecx, 2
Теперь поговорим насчёт адресов (смещений):
push offset [dbEnumNumbers+ecx]
Что это ты написал и что имел в виду? :-)
Тебе нужно передать адрес = база+ecx; так?
Но команда push не может вычислить тебе сумму постоянного числа и регистра!
Я не проверял этот код путём Ассемблирования, но могу сказать, что
Ассемблер сделает что-то типа:
push offset dbEnumNumbers
и всё! Дальше по сути должно идти предупреждение (warning).
Посмотри повнимательнее в файл ошибок!
Так что не пытайся сделать невозможное и используй LEA сначала, а потом PUSH.
Бывай!


Ответ отправлен: 27.08.2003, 01:56
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Доброе время суток, Fantomas!
> !>Боб, ты что был зол, когда отвечал на мой вопрос ? :-)
Нет, я просто охренел от команды, которой нет в процессоре и которую при этом компилирует тасм...
> ?>значит ищи ошибку здесь: push offset [dbEnumNumbers+ecx] !>Не думаю, эта инструкция меня еще ни разу не подводила !
Нет такой команды!!! Можно сделать push только значение регистра, число (но конкретное) или содержимого ячейки памяти. Но сделать push суммы числа с регистром нельзя!

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 26.08.2003, 19:15
Отправитель: Bob Johnson


Отвечает Hangatyr

Здравствуйте, Fantomas!
Несмотря на то, что этот секретный текст не предназначался для моих глаз, я все же не мог оставить такую ересь, как
"push offset [dbEnumNumbers+ecx]" без комментария.
Ни один нормальный ассемблер при всем желании ассеблировать это не сможет, потому что push offset some_label заменяется push value, а значение ecx не известно заранее. Я даже не смог понять, что именно вы хотите от этого кода. Надо бы хоть sleep добавить, чтоб видно было...



Приложение:

Ответ отправлен: 26.08.2003, 19:55
Отправитель: Hangatyr


Отвечает _vt

Приветствую Вас, Fantomas!
> Turbo Assembler !!!
Вот именно Turbo Assembler ругается на строку
push offset [dbEnumNumbers+ecx]
он ее
не понимает!!! Может у тебя какой-то особенный Turbo Assembler? У меня версии 5.0...
> Смысл был не в том, чтоб получить hWnd а в том, почему программа работает не верно !!! Я задаю конкретный вопрос, по конкретному участку программы
Так я тебе конкретно ответил, она не выйдет из цикла: ты вначале сохраняешь в стеке ecx, который ты предварительно очищаешь, а перед сравнением с 4 восстанавливаешь ecx. Так как 4 никогда не будет равно 0, то твоя программа уйдет в вечный цикл...
И немного влезу в твой ответ "для глаз" другого эксперта:
> Дожился, что теперь код, который я писал своими собственными руками называют один большой глюк. Обидно... :-)
Вообще-то не должно быть обидно... Тебе же не сказали, что ты его откуда-то выдрал - он честно твой и на данный момент представляет один большой глюк... :-)

---===*** Updated E-Man 1.5 - it's cool!***===---


Ответ отправлен: 27.08.2003, 01:03
Отправитель: _vt


 Вопрос № 4012

Здравствуйте! Я тут использую ftp.exe микрософтовскую чтобы аплодить файлы на ftp. Она работает в коммандной строке - но блин тормозит то как!!! Почему так получается что если зайти нa narod.ru и грузить файло через их html форму, то получается очень быстро - а так... ведь в консоле быстрей должно быть.... маразм.
Может кто подскажет где искать проблему?



Вопрос отправлен: 26.08.2003, 21:18
Отправитель: Эдик Самосвал0в (edsam@spidernet.com.cy)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Добрый день, Эдик Самосвал0в!
А ты попробуй другого ftp клиента, например того, который встроен в far, windows commander, в explorer, в конце концов. Возможно просто дело не в ftp.exe, а в твоем соединении с интернетом. У меня сейчас, например, файл ко мне идет со скростью 4 - 5 кб/с, а от меня - в среднем 500 байт в секунду! И дело тут вовсе не в ftp клиенте, а в подключении к интернету (у меня сейчас GPRS).

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 27.08.2003, 14:17
Отправитель: Bob Johnson


Отвечает wolf_2k

Доброе время суток, Эдик Самосвал0в!
не используй ничего от мелкомягких у них всё тормозное даже директ Х недоработан во всех версиях есть ошибка на переполнение при наложении текстуры поставь себе CuteFtp
или TotalCommander не пожалеешь особенно насчёт первого.

Ответ отправлен: 29.08.2003, 05:29
Отправитель: wolf_2k



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (38)
C / C++ (31)
Perl (5)
Builder / Delphi (19)
Pascal (26)
Basic / VBA (8)
Java / JavaScript (8)
PHP (10)
Криптография (9)
WinAPI (16)
Пользователю
Windows 95/98/Me (48)
Windows NT/2000/XP (64)
"Железо" (43)
Поиск информации (24)
Администратору
Windows NT/2000/XP (32)
Linux / Unix (12)
Юристу
Гражданское право (11)
Семейное право (7)
Трудовое право (7)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


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


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

В избранное