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

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


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

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

Выпуск № 432
от 02.12.2002, 11:30

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


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

Maverick
Статус: Профессиональный
Общий рейтинг: 136.99
URL: Задачи по ассемблеру
Телефон: 89039415024 (BiLine GSM)
[Подробней >>]
Andrew Vext
Статус: Доверительный
Общий рейтинг: 107.56
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 116.28
URL: Мой сайтик...
[Подробней >>]
 
wiggler
Статус: Начальный
Общий рейтинг: 105.06
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 110.88
URL: мощный файловый архив
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 154.28
[Подробней >>]
 
St
Статус: Опытный
Общий рейтинг: 115.45
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 151.16
[Подробней >>]
keleb-glin
Статус: Доверительный
Общий рейтинг: 114.58
[Подробней >>]
 
LIFO
Статус: Профессиональный
Общий рейтинг: 124.43
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 122.51
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.28
[Подробней >>]
 
igorash
Статус: Профессиональный
Общий рейтинг: 115.31
Телефон: 8(903)251-86-01
[Подробней >>]


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

Вопрос № 1960. Привет эксперты ! Недавно решил поставить себе Unix - подобную систему. Если какие нибудь решения та... (ответов: 6)
Вопрос № 1961. Привет All вот пытаюсь пpосканиpовать всю сеть на pесуpсы вpоде как можно это делать чеpез WNetOpen... (ответов: 1)
Вопрос № 1963. Уважаемый Bob Johnson, если можно, то пришлите мне тоже лабораторные по Ассемблеру. Мой адрес: gan@... (ответов: 2)
Вопрос № 1965. Небольшое отступление по вопросу 1903. >После вышеописанного я поставил себе delphi 6 и сделал прост... (ответов: 2)
Вопрос № 1966. Здрастуйте ув. Эксперты! Вопрос о програмировании Аксеса! Как зделать чтобы в отчёт выводилась тольк... (ответов: 1)
Вопрос № 1967. У меня есть программа Assambler скажите как работать на ней ... (ответов: 4)
Вопрос № 1968. Где можно скачать Assambler... (ответов: 3)
Вопрос № 1969. Кто нить знает какие нить книги по крекенгу?... (ответов: 3)
Вопрос № 1970. Большое спасибо за ответ,но хотелось бы уточнить по подробней.Подскажите,а как работает CreateDIPSec... (ответов: 1)
Вопрос № 1971. Здравствуйте! Написал я вот прогу: 1)на асме; 2)на делфе; 3)на с++; Теперь хочу протестировать кто б... (ответов: 5)

Вопросов: 10, ответов: 28


 Вопрос № 1960

Привет эксперты !
Недавно решил поставить себе Unix - подобную систему.
Если какие нибудь решения там для ассемблера, или асм исключительно "заточен" под маздаевские форточки.
Вы наверное скажете, что мог поставил бы ты ее как вторую и не мучился. На что я бы ответил, что этj бесконечные глюки, зависания, и т.д. меня ужу чесно-говоря бесят.
Да и хватит с меня 1.5 лет ламерства.
И как сказал Bob Johnson
НЕТ НАРКОТИКАМ !!!
И если что-нибудь похожее на Soft-Ice под Unix Подобные системы.
Хотел бы там продолжить его изучение. Страшно переходить на новое, если ты и здель полный ландух;)))
Если у вас есть различные ссылки и материалы по этому вопросу, то обязательно напишите.
С уважением Prophet



Вопрос отправлен: 27.11.2002, 08:13
Отправитель: Prophet (jjsp@mail.ru)

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

Отвечает Maverick

Приветствую Вас, Prophet!
Асм заточен не под операциону, а под процессор. Другое дело, что в досе исп. прерывания, а в винде API функции.


Ответ отправлен: 27.11.2002, 10:34
Отправитель: Maverick


Отвечает Andrew Vext

Приветствую Вас, Prophet!
Ассемблер есть везде, и в UNIX тоже (называется as). Правда, придется привыкать к новому синтаксису. Отладчики тоже есть, но опять же от SoftIce весьма отличаются.

Ответ отправлен: 27.11.2002, 10:52
Отправитель: Andrew Vext


Отвечает Portnov

Здравствуйте, Prophet!
Сколько можно говорить, асм бывает не под ось, а под проц!
Естественно, есть ассемблеры и под *nix-системы. У Unix и Linux вообще в комплекте поставки идут ассемблер и линковщик с мануалами по ним, у большинства других подобных систем тоже.
И мощные отладчики для *nix-систем тоже есть, один такой я видел на wasm.ru, можете еще найти.
C уважением, Portnov.

Ответ отправлен: 27.11.2002, 12:14
Отправитель: Portnov


Отвечает wiggler

Доброе время суток, Prophet!
Конечно, и под unix-подобные ОС есть ассемблер :-), правда синтаксис может несколько отличаеться от того, что принято в windows.


Ответ отправлен: 27.11.2002, 08:47
Отправитель: wiggler


Отвечает Eugene

Приветствую Вас, Prophet!
>>Да и хватит с меня 1.5 лет ламерства.
Это наверно ты столько под виндой сидел? Сколько же тебе лет тогда? Сейчас дети уже под виндой шарят как ненормальные. Знаешь сколько выкриков виндовс маздай, линукс рулез. Большинство из этих крикунов, поставив линукс через неделю сносили его.
>>На что я бы ответил, что этj бесконечные глюки,
>>зависания, и т.д. меня ужу чесно-говоря бесят.
Времена 95-й и 98-й винды прошли уже в прошлом веке. 2000-я винда гораздо стабильнее. Очень сильно её может подпортить только ну очень корявая программа. Я очень сильно сомневаюсь, что под линукс не бывает кривых программ. Так что кричать о том, что линукс безглючен, я бы не стал. Всё как в виндах, зависит от софта, который используешь.
P.S. высказался о наболевшем.

Ответ отправлен: 27.11.2002, 09:11
Отправитель: Eugene


Отвечает Bob Johnson

Здравствуйте, Prophet!
АСМ не может быть заточен под конкретную ОС, т.к. он только процессорозависем, т.е. ориентирован на программирование под определенный процессор. Под Linux'ом есть асм, например.
А вот все-таки винды надо было оставить...
Ведь и linux может повиснуть...


Ответ отправлен: 28.11.2002, 21:25
Отправитель: Bob Johnson


 Вопрос № 1961

Привет All
вот пытаюсь пpосканиpовать всю сеть на pесуpсы
вpоде как можно это делать чеpез WNetOpenEnum, WNetEnumResource ...
пеpвую машинку покажет а дальше хpен вам. где гpабли знает кто?
может полностью заслать пpогу или кусков хватит?
=== Cut ===
xor ebp,ebp
_loc34: push offset NetEnum
push ebp
push RESOURCEUSAGE_ALL
push RESOURCETYPE_ANY
push RESOURCE_GLOBALNET
call WNetOpenEnumA
or eax,eax
jnz _error
mov ebp,offset NetRes
;;
push offset NetResSize
push ebp
push offset ipcCount
push [NetEnum]
call WNetEnumResourceA
or eax,eax
jnz _exit
mov ecx,[ipcCount]
_loc35: mov esi,offset NetRes.nr_lpLocalName
...
... ; вывод
loop _loc35
jmp _loc34
_exit: push [NetEnum]
call WNetCloseEnum

NetRes nr_struc num dup (?)
NetResLen=$-NetRes
NetResSize dd NetResLen
NetEnum dd 0
ipcCount dd -1
; остатки
RESOURCE_CONNECTED equ 00000001h
RESOURCE_GLOBALNET equ 00000002h
RESOURCE_REMEMBERED equ 00000003h
RESOURCE_RECENT equ 00000004h
RESOURCE_CONTEXT equ 00000005h
RESOURCETYPE_ANY equ 00000000h ; Note that this is not a bit mask value
RESOURCETYPE_DISK equ 00000001h
RESOURCETYPE_PRINT equ 00000002h
RESOURCETYPE_RESERVED equ 00000004h ; Reserved for a bit mask version of
RESOURCETYPE_ANY
RESOURCEUSAGE_CONNECTABLE equ 00000001h
RESOURCEUSAGE_CONTAINER equ 00000002h
RESOURCEUSAGE_NOLOCALDEVICE equ 00000004h
RESOURCEUSAGE_SIBLING equ 00000008h
RESOURCEUSAGE_RESERVED equ 80000000h
RESOURCEUSAGE_ALL equ RESOURCEUSAGE_CONNECTABLE +
RESOURCEUSAGE_CONTAINER
nr_struc struc ; netresource structure
nr_dwScope dd ? ;scope of the enumeration
nr_dwType dd ? ;bitmask that gives the resource type
nr_dwDisplayType dd ?
nr_dwUsage dd ?
nr_lpLocalName dd ?
nr_lpRemoteName dd ?
nr_lpComment dd ?
nr_lpProvider dd ?
ends



Вопрос отправлен: 27.11.2002, 08:41
Отправитель: trex (trex@onego.ru)

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

Отвечает St

Привет, trex!
Вашу программу я не очень понял, в чужих разбираться сложно но я сам писал когда-то программку для посылки сообщений по сети (типа winpopup) c определением какие машины сейчас в сети. Но она не закончена, в ней подразумевалось что есть только одна рабочая группа. На разных сетях она вела себя по-разному - на одной работал вариант только где вместо второго хэндла пришлось еще раз передать первый, иначе не работало. Где-то работала, пока не были (на каждом из четырех этапах - сеть миксософт, еще чего-то, рабочая группа, машина) введены проверки на ошибку, когда это было сделано всё обрывалось уже на втором этапе.
Пример рабочей процедуры см Приложение. Здесь вторая WNetOpenEnumA закоментирована и во вторую WNetEnumResourceA передается HANDLE_ENUM, а не HANDLE_ENUM1 как следует по документации (сработала программистская интуиция :). Тем не менее у меня это работает (Win2k). В конце процедуры найденные машины добавляются в список.
Если есть вопросы: st23@yandex.ru
St

Приложение:

Ответ отправлен: 27.11.2002, 12:39
Отправитель: St


 Вопрос № 1963

Уважаемый Bob Johnson, если можно, то пришлите мне тоже лабораторные по Ассемблеру. Мой адрес:
gan@pokrovsk.sakha.ru
С уважением, Никита



Вопрос отправлен: 27.11.2002, 12:59
Отправитель: Никита

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

Отвечает Maverick

Доброе время суток, Никита!
Кхе, что это за пресловутые лабораторные? Я гляжу бедного Bob Jonsona уже закидали подобными вопросами :)
Если они и правда интересные, то скинь мне на Maverick@nightmail.ru

Ответ отправлен: 28.11.2002, 04:41
Отправитель: Maverick


Отвечает Bob Johnson

Добрый день, Никита!
Можно. Высылаю.


Ответ отправлен: 28.11.2002, 21:25
Отправитель: Bob Johnson


 Вопрос № 1965

Небольшое отступление по вопросу 1903.
>После вышеописанного я поставил себе delphi 6 и сделал простое окно с одним пунктом меню, при нажатии на которое прога должна закончиться. Итог - размер 350 Kb ( или у меня с глазами плохо ? ).
Так оно и есть. При компилировании проекта Delphi вставляет готовые модули. Ты сделал форму с кнопкой, а он тебе засунул туда все, что с ними связано.
В этом есть и плюсы и минусы: уменьшение времени компиляции (когда ты водиш мышкой по тексту программы Delphi успевает скомпилировать и дать подсказку, попробуй поводить мышью в BCBuilder), плюс включается избыток кода на случай того, что что-нибудь будет создаваться в RunTime, ну и т.д.
Зато при большом проекте наблюдается обратная ситуация: добавляеш 300 кБ кода, а экзешник увеличивается на 5-10.
Наконец, если хочеш увидеть в работе дельфийский компилятор, сделай консольное приложение и сравни его размер с аналогичным от СИ.
А вообще куда кидать комментарии? Иногда вопросы освещены не полностью.



Вопрос отправлен: 27.11.2002, 14:17
Отправитель: Vladimir

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

Отвечает Maverick

Доброе время суток, Vladimir!
Ни куда их не кинешь пока, тока отдельным вопросом.
В Delphi помоему можно добиться минимального размера приложения около 40 кб, если отключить некоторые библиотеки.


Ответ отправлен: 28.11.2002, 04:41
Отправитель: Maverick


Отвечает Bob Johnson

Добрый день, Vladimir!
Чего-то я не понял, а в чем вопрос?
В delphi можно делать и очень маленькие проги - для этого надо отключить все стандартные инклюды (это uses) и подключать все необходимые функции из системных DLL самому.


Ответ отправлен: 28.11.2002, 21:25
Отправитель: Bob Johnson


 Вопрос № 1966

Здрастуйте ув. Эксперты!
Вопрос о програмировании Аксеса!
Как зделать чтобы в отчёт выводилась только выделенная запись(форма), а не вся таблица?
зараннее благодарен!
з.ы. Сори за офтопик, может кто сталкивался!!!
з.ы.ы. Пытаюсь програмировать в Аксесе!



Вопрос отправлен: 27.11.2002, 19:33
Отправитель: Ghost

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

Отвечает Bob Johnson

Добрый день, Ghost!
Так ты запрос в отчете сделай такой, чтобы в него попадали не все записи таблицы, например что-то вроде:
select * from TABLE where ID=[FORMS]![Выбор отчета]![Идентификатор]


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


 Вопрос № 1967

У меня есть программа Assambler скажите как работать на ней



Вопрос отправлен: 27.11.2002, 20:25
Отправитель: Flanker

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

Отвечает masquer

Доброе время суток, Flanker!
Угу, а у меня есть крутая прога VyNdAWz, обменяемся знаниями?

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


Отвечает Andrew Vext

Добрый день, Flanker!
Plug'n'play -вставил и играй.
Правильный вопрос- залог быстрого ответа.

Ответ отправлен: 28.11.2002, 11:47
Отправитель: Andrew Vext


Отвечает Maverick

Добрый день, Flanker!
Нужно ее сначало ассемблировать, для получения объектного файла, а потом слинковать. Например Tasm.
Ассемблируем:
Tasm.exe myprog.asm
получчится файл myprog.obj
Линкуем:
Tlink.exe myprog.obj /t
если убрать параметр /t, получится exe, с ним-com

Ответ отправлен: 28.11.2002, 04:41
Отправитель: Maverick


Отвечает Bob Johnson

Доброе время суток, Flanker!
Пишешь программу в любом текстовом редакторе, потом компилируешь ее:
tasm /m2 my_file.asm
tlink my_file.obj
и все...


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


 Вопрос № 1968

Где можно скачать Assambler



Вопрос отправлен: 27.11.2002, 20:40
Отправитель: pavelk

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

Отвечает keleb-glin

Добрый день, pavelk!
Ищи masm на www.microsoft.com


Ответ отправлен: 30.11.2002, 22:29
Отправитель: keleb-glin


Отвечает Maverick

Доброе время суток, pavelk!
На просторах инета, его везде навалом.
Tasm или Masm
Погляди на www.filesearch.ru


Ответ отправлен: 28.11.2002, 04:41
Отправитель: Maverick


Отвечает masquer

Здравствуйте, pavelk или Flanker!
Судя по безошибочному написанию названия языка и предыдущему вопросу скажу - тебе это не нужно.

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


 Вопрос № 1969

Кто нить знает какие нить книги по крекенгу?



Вопрос отправлен: 27.11.2002, 21:44
Отправитель: Soldier

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

Отвечает Maverick

Добрый день, Soldier!
Сам не читал, но хвалили Криса Касперски


Ответ отправлен: 28.11.2002, 04:41
Отправитель: Maverick


Отвечает masquer

Доброе время суток, Soldier!
Кто-нибудь - точно знает!!!

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


Отвечает LIFO

Добрый день, Soldier!
Уже в крякинг подался?
Есть много фуфлыжных книг типа(крякнем вместе, все для крякера) размеров в 400-500стр. кот. тебе скорее здоровье подорвут, чем чему - нибудь научат.
Советую взять две книги
Криса Касперского (библия хакера и обнаружение хак.атак)


Ответ отправлен: 28.11.2002, 23:05
Отправитель: LIFO


 Вопрос № 1970

Большое спасибо за ответ,но хотелось бы уточнить по подробней.Подскажите,а как работает CreateDIPSection,я не нашел ее описание,знаю,что ей надо передать 6 параметров,среди них какая,то структура,и потом раз Create... ,значит она что то создает,а мне надо узнать начальный адрес памяти bitmap-а и получить к нему доступ.
сенкью.(я задавал вопрос 1868)



Вопрос отправлен: 27.11.2002, 22:08
Отправитель: Korov

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

Отвечает Bob Johnson

Здравствуйте, Korov!
Ты мог не найти ее описание, если назвал ее CreateDIPSection - правильно CreateDIBSection.
Описание ее есть в MSDN. Ну так вот, вначале создаешь в памяти DC:
push _какой нибудь уже имеющийся DC, например экрана_
Call CreateCompatibleDC
mov [mdc], eax
далее создаешь DIB section:
push 0
push 0
lea eax, [ma]
push eax
push DIB_RGB_COLORS
lea eax, [bih]
push eax
push [mdc]
Call CreateDIBSection
mov [mbm], eax
Где переменные [ma] - это указатель, в который вернется адрес битмапа в памяти, т.е.
ma dв ?
а bih - вот это заголовок, т.е. BITMAPINFOHEADER, который ты заполняешь до вызова функции необходимыми значениями.
Функция вернет в eax HBitmap, который ты можешь затем вполне выбрать в DC: SelectObject (mdc, mbm);
а переменная ma будет указывать на блок памяти, содержащий биты...
Если же ты хочешь руками править уже готовый битмап, то сделай свою дибсекшан, скопируй в нее информацию из исходного DC (BitBlt) и потом правь...


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


 Вопрос № 1971

Здравствуйте!
Написал я вот прогу:
1)на асме;
2)на делфе;
3)на с++;
Теперь хочу протестировать кто быстрее работает и на сколько быстрее!!!
Может посоветуете соответствующий софт (типа считает такты проца, затраченные на прогу(цикл в проге)), который мне поможет!
Либо может мне самому можно что-нибудь настряпать!!
ЗЫ: Желательно, чтоб можно было бы анализировать быстродействие циклов в проге(ну и других составных частей).



Вопрос отправлен: 28.11.2002, 11:21
Отправитель: Orlando (orlando@kaluga.ru)

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

Отвечает Sensey

Добрый день, Orlando!
Предложу в исходнике этих прог запоминать время- я лично так делаю.
Для ДОСа лучше всего читать данные из БИОС по адресу 40:6С с точночтью 55мс


Ответ отправлен: 28.11.2002, 11:47
Отправитель: Sensey


Отвечает Bob Johnson

Доброе время суток, Orlando!
Лучше сам внутри своей проги проверяй таймер или что-нибудь еще. Потому что некоторое время тратится на запуск проги и чем мощнее язык, на котором она написана - тем больше времени надо на инициализацию.


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


Отвечает Ayl

Здравствуйте, Orlando!
Во-первых, ты можешь сам написать что-то подобное:
start := GetTimer;
Execute (progasm);
end := GetTimer;
AsmTime := TimePeriod (start, end);
start := GetTimer;
Execute (progdelphi);
end := GetTimer;
DelphiTime := TimePeriod (start, end);
start := GetTimer;
Execute (progcpp);
end := GetTimer;
CPPTime := TimePeriod (start, end);
Это просто алгоритм, но смысл действий, я надеюсь, понятен.
и сравнить. Если программы выполняются очень быстро, то запускаешь ее раз 100 (1000 и т.п.) и потом вычисляешь время одного запуска.
Во-вторых, можно воспользоваться каким-либо средством. Например, для Dos была программка Turbo Profiler как раз для анализа выполнения программ. Она позволяла получать информацию в том числе по отдельным частям программы.
К сожалению, я не знаю подобных средств для винды, но уверен, что они есть. Причем, скорее всего, даже входят в дистрибутивы Delphi и C++.


Ответ отправлен: 28.11.2002, 12:01
Отправитель: Ayl


Отвечает igorash

Приветствую Вас, Orlando!
1) asm - rdtsc сколько тактов после ресета
2) c++ - clock - такты с момента старта проги..
дельфи - не знаю

Ответ отправлен: 28.11.2002, 15:43
Отправитель: igorash


Отвечает St

Привет, Orlando!
Можно использовать функции виндов типа GetTickCount или QueryPerformanceCounter (точнее) для расчета времени между двумя вызовами этих функций.
Например один раз запустить GetTickCount до цикла, а потом второй после и вычесть из второго результата первый (точность якобы 1 миллисекунда, на самом деле зависит от разных причин). Для большей точности поставьте побольше циклов.
St


Ответ отправлен: 28.11.2002, 11:59
Отправитель: St



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

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (39)
C / C++ (27)
Perl (8)
Delphi (17)
Pascal (22)
Basic / VBA (9)
Java / JavaScript (15)
PHP (9)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (23)
"Железо" (27)
Поиск информации (15)
Администратору
Windows NT/2000/XP (13)
Linux / Unix (18)
Юристу
Гражданское право (9)
Семейное право (3)
Трудовое право (5)
КоАП (3)

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




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


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

В избранное