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

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.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

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


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


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

В избранное