Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 636
от 10.09.2003, 16:10
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 4126 Отправлено ответов: 12178 Активность: 295.1 %
|
РекламаЗаходите на мой сайт http://superforest.narod.ru/Недавно начал вести дневник и небольшие заметки. Также имеется немного моих программ c исходниками и фотографии (по большей части природа). Добро пожаловать! |
Список экспертов, ответы которых опубликованы в данном выпуске |
_vt Статус: Профессиональный Общий рейтинг: 122 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.14 URL: Программирование [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 146.93 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 124.84 URL: Эхоконференция по вирмейкингу Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
Igoryk Статус: Профессиональный Общий рейтинг: 110.49 URL: CodeClimber.Com [Подробней >>] |
GL Статус: Опытный Общий рейтинг: 102.51 [Подробней >>] |
St Статус: Профессиональный Общий рейтинг: 106.63 [Подробней >>] |
Fantomas Статус: Доверительный Общий рейтинг: 111.76 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 107.22 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 111 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 4085. Уважаемые , эксперты, вопрос следующий ,как удачнее всего сделать следующую программу на ассемблере ... (ответов: 3)
Вопрос № 4086. Доброе время суток! Наверно каждый из вас хоть раз делал "писалку" в РЕ файл. Если можете... (ответов: 2)
Вопрос № 4088. Подскажите пожалуйста функция для перевода десятичного числа в строку и обратно.... (ответов: 3)
Вопрос № 4089. Добрый час! Когда я запускаю html-ресурс (http://...) функцией ShellExecute (с действием "open&... (ответов: 3)
Вопрос № 4090. > Доброе время суток! Наверно каждый из вас хоть раз > >делал "писалку" в РЕ файл. Если мо... (ответов: 2)
Вопрос № 4091. Здравствуйте,друзья.На сайте wasm кажется в туториалах Iczelion -а я прочел ,что для изучения асма ... (ответов: 6)
Вопрос № 4092. Здравствуйте! Фактически, я получил только один ответ на мой вопрос от владельца AMD XP, поэтому пов... (ответов: 2)
Вопрос № 4093. Здравствуйте Эксперты! Мне необходимо сделать следующее: платформа Win9x/ME, есть список программ, к... (ответов: 1)
Вопрос № 4094. Здравствуйте!!! Суть вопроса заключается в следучщем... Допустим имеется основное окно с менюшками..... (ответов: 1)
Вопрос № 4095. Здравствуйте!!! Суть вопроса заключается в следучщем... Допустим имеется основное окно с менюшками..... (ответов: 2)
Вопросов: 10, ответов: 25
Вопрос № 4085 |
Уважаемые , эксперты, вопрос следующий ,как удачнее всего сделать следующую программу на ассемблере , требуется запустить команду в стиле 'net start spoolet' под NT но нужно проанализировать следующее , если команда выполнилась неудачно т.е служба не стартанула то выполнить ее еще раз, заранее благодарен
Вопрос отправлен: 04.09.2003, 15:24
Отправитель: greg
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Добрый день, greg!
Запускать её в цикле и проверять код возврата (GetExitCodeProcess)
*** Updated E-Man 1.5 - it's cool! Join to us, if you're a real rusfaq expert! :-()***
Ответ отправлен: 04.09.2003, 23:24
Отправитель: _vt
Отвечает Bob Johnson
Приветствую Вас, greg!
Запуск процесса - это CreateProcess, ей и передаешь все нужные параметры. Результат анализируется с помощью следующего кода:
WaitForSingleObject (pi.hProcess, INFINITE);
GetExitCodeProcess (pi.hProcess, &sz);
где pi - это структура PROCESSINFORMATION, указатель на которую передавался CreateProcess; sz - это переменная, которая получит код завершения процесса. Обычно, если он не равен нулю, значит произошла ошибка.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 04.09.2003, 23:16
Отправитель: Bob Johnson
Отвечает Евгений Иванов
Доброе время суток, greg!
Возможно, можно использовать код возврата:
if errorlevel 1 goto exit
Ответ отправлен: 05.09.2003, 16:46
Отправитель: Евгений Иванов
Вопрос № 4086 |
Доброе время суток! Наверно каждый из вас хоть раз делал "писалку" в РЕ файл. Если можете поделитесь каким-нибудь простым примером на ТАСМЕ (для приобретения опыта).
Зараннее благодарен...
Вопрос отправлен: 04.09.2003, 17:05
Отправитель: Novichek
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, Novichek!
А что ты имеешь ввиду под "писалкой" - вирус? Вот честно, для PE - ни разу...
Напиши, что тебе конкретно нужно, потому что просто записать в файл - это функция WriteFile.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 04.09.2003, 23:17
Отправитель: Bob Johnson
Отвечает Maverick
Доброе время суток, Novichek!
Тебе что, куда писать? В заголовок, в секции?
Напиши че надо, напишу пример.
Maverick@nightmail.ru
Ответ отправлен: 05.09.2003, 10:23
Отправитель: Maverick
Вопрос № 4088 |
Подскажите пожалуйста функция для перевода десятичного числа в строку и обратно.
Вопрос отправлен: 04.09.2003, 22:28
Отправитель: Торвик (_torvic@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Добрый день, Торвик!
По-моему, есть здесь и очень подробно
*** Updated E-Man 1.5 - it's cool! Join to us, if you're a real rusfaq expert! :-()***
Ответ отправлен: 04.09.2003, 23:24
Отправитель: _vt
Отвечает Bob Johnson
Здравствуйте, Торвик!
Туда: wsprintf (buffer, "%i", number). Обратно - только самому посимвольно. Кстати, процедурки такого перевода неоднократно появлялась в этой рассылке, а также она (они?) есть в faq Тиграна.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 04.09.2003, 23:52
Отправитель: Bob Johnson
Отвечает Евгений Иванов
Приветствую Вас, Торвик!
Сто раз было писано. Смотри архив!
Ответ отправлен: 05.09.2003, 18:23
Отправитель: Евгений Иванов
Вопрос № 4089 |
Добрый час!
Когда я запускаю html-ресурс (http://...) функцией ShellExecute (с действием "open"), то если iexplorer не запущен, он запускается и все нормально. Но если он уже запущен и в нем открыта какая-либо страница, то вместо открытия нового окна отображение требуемого html ресурса происходит в этом же окне. При этом он, естественно, прекращает отображать старую страницу. Как сделать так, чтобы всегда открывалось новое окно IE независимо от количества уже открытых его окон?
Вопрос отправлен: 04.09.2003, 23:44
Отправитель: Bob Johnson
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Приветствую Вас, Bob Johnson!
Нужно зайти в настройки Explorer'а. Вкладка Дополнительно. И снять птичку с "Использовать одно и то же окно для загрузки ярылков"
Ответ отправлен: 05.09.2003, 10:11
Отправитель: Igoryk
Отвечает GL
Приветствую Вас, Bob Johnson!
В Дельфях я так писал:
ShellExecute(Handle,nil,'iexplore',Pchar(url_text),nil,SW_Restore);
Ответ отправлен: 05.09.2003, 13:36
Отправитель: GL
Отвечает Bob Johnson
О, а я теперь понял, как можно ответить на свой же вопрос. Если кому надо - обращайтесь.
P.S. Спасибо, Igoryk - мне это и нужно было. Потому как такое поведение exporer'а уже давно надоело.
Для остальных - не предлагайте ShellExecute с именем iexplore.exe, т.к. это создает 100%-ю привязанность программы к IE. А если у человека Opera?
Ответ отправлен: 05.09.2003, 15:48
Отправитель: Bob Johnson
Вопрос № 4090 |
> Доброе время суток! Наверно каждый из вас хоть раз > >делал "писалку" в РЕ файл. Если можете поделитесь каким->нибудь простым примером на ТАСМЕ (для приобретения опыта).
>Зараннее благодарен...
Спасибо за ответ... Под "писалкой" в РЕ я понимаю дописывание кода, и передача на него управления (да действительно простенькая зараза). Если все-таки кто-то писал или имеет подобный исход, огромная просьба: ПОДЕЛИТЕСЬ.
Бест вам всем регардс.
Вопрос отправлен: 05.09.2003, 09:39
Отправитель: Novichek
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, Novichek!
У Тиграна было множество документации по этому вопросу. Адрес его страницы: http://kalaidjian.narod.ru, а список файлов неоднократно проходил в нашей рассылке.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 05.09.2003, 14:55
Отправитель: Bob Johnson
Отвечает Maverick
Здравствуйте, Novichek!
Тебе исходники вирей нужны. Восходящая звезда вирмейкинга?
Давай мыл, кинь на ящик.
Maverick@nightmail.ru
Ответ отправлен: 05.09.2003, 10:23
Отправитель: Maverick
Вопрос № 4091 |
Здравствуйте,друзья.На сайте wasm кажется в туториалах
Iczelion -а я прочел ,что для изучения асма под виндовс
необходимо знания англиского и Си в обьеме церковно приходской школы. С первым все ясно.А вот второе я попросил бы вас немного прокоментировать.Понятно ,что используются API.
Я недавно начал вникать в асм под win32 , до этого немного
писал на бейсике,наверное на процентов 30 разобрался с асмом
под дос. И некотрые веши мне не знакомы не очень хотелось
разбираться и с Си. Юрий.
Вопрос отправлен: 05.09.2003, 16:59
Отправитель: Yury (ch_y@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Добрый день, Yury!
Со вторым еще проще: тебе нужно использовать какие-либо функции API, которые нужно вызывать с параметрами - во всех справочниках их описания в записи Си, а нужно понимать как это преобразуется в ассемблерную форму. В windows созданы для Си тысячи типов переменных, но в большинстве случаев типы, названия которых начинаются на LP... , это указатели, т.е. при передаче параметров (push XXXX) для них надо писать push offset XXXX (или для MASM32 - invoke ...., ADDR XXXX), а остальные типы - целые, размерности DWORD...
*** Updated E-Man 1.5 - it's cool! Join to us, if you're a real rusfaq expert! :-()***
Ответ отправлен: 06.09.2003, 01:03
Отправитель: _vt
Отвечает St
Привет, Yury!
Знать Си нужно в таком объеме, чтобы понимать примеры и смочь перевести на ассемблер, то есть вовсе не обязательно уметь писать целые программы на Си. Дело в том что использование функций API в хелпе (win32.hlp или MSDN) приведено исключительно на Си. Я сам не слишком хорошо зная Си через некоторое время смог успешно пользоваться такими примерами. Вообще написание программ на асме под винды довольно легко (в отличие от программ под ДОС), тк значительная часть программы это вызовы функций, а они мало чем отличаются от вызова функций на большинстве языков высокого уровня, особенно если использовать invoke и его аналог в тасме (call с указанием параметров через запятую).
St
Ответ отправлен: 08.09.2003, 12:07
Отправитель: St
Отвечает Fantomas
Приветствую Вас, Yury!
?>необходимо знания англиского и Си в обьеме церковно
?>приходской школы...
Знания английского - на самом элементарном уровне,
т.е. ты должен понимать что:
CMP - это Compare (сравненить)
MOV - это Move (перенести)
JZ - это Jump if Zero (Прыгнуть если ноль)
PUSH - он и в Африке Push (Покласть)
POP - тоже Pop (Извлечь)
А теперь, что косается Си:
"Я считаю, что изучить его стоит только для того, чтобы
понять какой это бред."
(Fantomas)
Для изучения Assembler под Win32 знание Си тебе вообще нафиг не нужно, оно только запудрит тебе мозги !!!
Я обосную свой ответ:
Все типы (HBRUSH, HANDLE, HPEN и т.п.) храняться
в памяти в одном и том же виде - DWORD, но какой-то
идиот придумал их штук 15 для каждого вида свой, как
будто в HBRUSH действительно находятся карандаши и
фломастеры !
Точки с запятой после каждой строки - промолчу, не буду заводиться...
Ах, эти скобочки - напоминают мне песочницу для детей.
И ВООБЩЕ, ПУСТЬ ЗНАЮТ ВСЕ: C++ - ОДИН БОЛЬШОЙ ГЛЮК !!!
И ВООБЩЕ, ПУСТЬ ЗНАЮТ ВСЕ: C++ - ОДИН БОЛЬШОЙ ГЛЮК !!!
И ВООБЩЕ, ПУСТЬ ЗНАЮТ ВСЕ: C++ - ОДИН БОЛЬШОЙ ГЛЮК !!!
Пиши на f-a-n-t-o-m-a-s@ukr.net, если нужна будет помощь
по каким-нибудь языкам программирования !
Удачи !
Ответ отправлен: 06.09.2003, 14:46
Отправитель: Fantomas
Отвечает Gibbel
Приветствую Вас, Yury!
Все дело в том, что большая часть Windows написана на C, отсюда, соответственно, и то, что все описания функций и примеры работы с ними в оригинальной документации (от Micro$oft) также приведены в формате языка C. Поэтому для изучения программирования под Windows настоятельно рекомендуется выучить хотябы основы этого языка. К тому же, если вы желаете научиться полноценно программировать, то вам стоит выучить языки C/C++ - приложения на них создавать гораздо проще и быстрее (хотя, не всегда получается то, что ожидаешь ;-) ), а на ассемблере стоит писать только те участки кода, которые нереалезуемы на C/C++ или от которых требуется максимальная производительность.
Ответ отправлен: 05.09.2003, 17:28
Отправитель: Gibbel
Отвечает Dark_Lord
Добрый день, Yury!
Зайди на learnasm.narod.ru, там я рассматриваю вопрос обучение програграммированию под Win32 на ассемблере, без познаний Си, а так-же хелп файлы по АПИ функциям!
Ответ отправлен: 05.09.2003, 19:21
Отправитель: Dark_Lord
Отвечает Bob Johnson
Доброе время суток, Yury!
Для изучения асма знания С совсем не нужно. Английский нужен лишь потому, что большинство качественной документации написано на нем.
Конечно, знание С++ пригодится, как и знание любого другого языка программирования, т.к. примеры программ по большей части написаны на С++. Но это уже относится к изучению применения API функций и т.д. Для чистого же асма никакой другой язык программирования не нужен.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 05.09.2003, 22:25
Отправитель: Bob Johnson
Вопрос № 4092 |
Здравствуйте! Фактически, я получил только один ответ
на мой вопрос от владельца AMD XP, поэтому повторю:
вопрос - чем будет отличаться выполнение FILE1.com и
FILE2.com на процессоре Intel P6+?
На P4 и не-intel не проверялось.
(1450000000 - прим.частота моего celeron tualatin)
(Кажется, BJ не понял вопроса либо у него не Intel P6+)
;
; FILE1
;
text segment
assume cs:text
.386
org 100h
start: mov eax,1450000000/2
nop ; for align
nop
loc: dec eax
jnz loc
retn
retn
retn
mov eax,0
text ends
end start
;
; FILE2
;
text segment
assume cs:text
.386
org 100h
start: mov eax,1450000000/2
nop ; for align
nop
loc: dec eax
jnz loc
retn
retn
mov eax,0
text ends
end start
Вопрос отправлен: 05.09.2003, 18:34
Отправитель: Meze (meze@nm.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Приветствую Вас, Meze!
> я получил только один ответ на мой вопрос от владельца AMD XP
А какой ты еще хотел получить ответ? Я тебе ответил, что у меня на атлоне хр они выполняются одинаково, и я считаю что также и на других процессорах... Возможно из-за особенностей реализации систем предугадывания команд на разных процессорах на выходе будет разное содержимое регистров, но это только предположение, и мне глубоко плевать на это... С подобными вопросами в эту рассылку обращаться не стоит: здесь или разбирают неработающий код или разговаривают на околопрограммистские темы :-))) Обратись, к примеру, в форум на wasm'е... Это их dZenская тематика :-) Они там могут несколько недель обсуждать, как программно выдернуть шнур из розетки и все такое :-))
*** Updated E-Man 1.5 - it's cool! Join to us, if you're a real rusfaq expert! :-()***
Ответ отправлен: 06.09.2003, 03:54
Отправитель: _vt
Отвечает Bob Johnson
Добрый день, Meze!
> Кажется, BJ не понял вопроса либо у него не Intel P6+
А что такое "Intel P6+"? Или это из той же серии, что и push offset [dbEnumNumbers+ecx]? :)
У меня Intel P4 (без всякого "+"), а вопрос твой я действительно не понял - программы практически идентичные. Только отмечу факт, что если ты пишешь 32-разрядные программы для тестирования скорости, то не следует размещать их в 16-рарзядном сегменте, т.к. тогда к каждой такой команде добавляется префикс 66h, который может повлиять на скорость ее выполнения.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 05.09.2003, 22:21
Отправитель: Bob Johnson
Вопрос № 4093 |
Здравствуйте Эксперты!
Мне необходимо сделать следующее: платформа Win9x/ME, есть список программ, которые разрешено запускать на данном компьютере, запуск остальных приложений, нужно запретить. Установить что-нибудь на платформе NT, в силу ряда причин, возможности нет. Так вот, насколько я понимаю, для такой задачи необходимо писать драйвер. Подскажите пожалуйста, как хоть подойти к решению? обpаботать сообщение Create_VM? Но насколько я знаю это сообщение приходит только при создании VM86, или я не прав? Может быть поставить хук с помощью сервиса IFSMgr_InstallFileSystemApiHook, но для всех-ли исполняемых файлов это подойдёт?
Спасибо за ответы, если будут.
Вопрос отправлен: 05.09.2003, 23:46
Отправитель: Alex
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Alex!
1. Информация по написанию драйвера под 9х есть на моей странице.
2. Для этого ты действительно можешь поставить хук файловой системы и отлавливать обращение к неразрешенным exe файлам и блокировать их (примерно это и есть в моем описании драйвера). http://bobjohnson.nm.ru
3. Возможно подпатчить функцию CreateProcess так, чтобы она не позволяла запускать неразрешенные программы. Но это тоже из драйвера.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 06.09.2003, 16:42
Отправитель: Bob Johnson
Вопрос № 4094 |
Здравствуйте!!!
Суть вопроса заключается в следучщем...
Допустим имеется основное окно с менюшками...
как реализовать окна вывода, т.е. что-то вроде окон документов в word'e или exel'e, чтоб окна разворачивались в рабочей области родительского окна, также сворачивались, а на панели задач отображались все эти форточки)
...я где-то читал, что дочерними могут быть только контролы и различные сообщения, на сколько это верно??
...и как будет реализована связь "родительского" и "дочерних" окон?
в общем родительское окно получает какой-либо текст, а дочернее должно его отобразить.
Заранее благодарен!
З.Ы. если кините исходнички буду очень признателен!;)
Вопрос отправлен: 06.09.2003, 15:14
Отправитель: Agny (agny@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Доброе время суток, Agny!
MDI называется.
Ответ отправлен: 07.09.2003, 01:02
Отправитель: Евгений Иванов
Вопрос № 4095 |
Здравствуйте!!!
Суть вопроса заключается в следучщем...
Допустим имеется основное окно с менюшками...
как реализовать окна вывода, т.е. что-то вроде окон документов в word'e или exel'e, чтоб окна разворачивались в рабочей области родительского окна, также сворачивались, а на панели задач отображались все эти форточки)
...я где-то читал, что дочерними могут быть только контролы и различные сообщения, на сколько это верно??
...и как будет реализована связь "родительского" и "дочерних" окон?
в общем родительское окно получает какой-либо текст, а дочернее должно его отобразить.
Заранее благодарен!
З.Ы. если кините исходнички буду очень признателен!;)
Вопрос отправлен: 06.09.2003, 16:01
Отправитель: Agny (agny@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Gibbel
Здравствуйте, Agny!
1. Вопрос не совсем в ту рассылку (есть рассылка по WinAPI)
2. Ищи в MSDN описание работы с MDI.
3. Дочерними могут быть любые окна (по сути, контролы ничем не отличаются от прочих окон, кроме того, что оконные функции уже реализованны в самой операционной системе).
Ответ отправлен: 08.09.2003, 12:28
Отправитель: Gibbel
Отвечает Bob Johnson
Приветствую Вас, Agny!
Тебе нужно смотреть описание MDI интерфейса (Multiply Document Interface), который и применяется в Word и Excel.
> что дочерними могут быть только контролы и различные сообщения
Контролы могут быть, но сообщения - бред какой-то... Сообщения как бы кому-то адресованы. Если под этим понимать их "дочерность", то да, но это как-то неестественно.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 06.09.2003, 16:45
Отправитель: Bob Johnson
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (32) C / C++ (28) Perl (5) Builder / Delphi (18) Pascal (21) Basic / VBA (7) Java / JavaScript (11) PHP (10) Криптография (7) WinAPI (15) |
Пользователю Windows 95/98/Me (47) Windows NT/2000/XP (62) "Железо" (38) Поиск информации (23) |
Администратору Windows NT/2000/XP (27) Linux / Unix (10) |
Юристу Гражданское право (8) Семейное право (5) Трудовое право (6) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||