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

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


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

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

Выпуск № 599
от 25.07.2003, 16:40

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


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

masquer
Статус: Профессиональный
Общий рейтинг: 135.86
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.1
URL: Программирование
[Подробней >>]
Igoryk
Статус: Профессиональный
Общий рейтинг: 111.38
URL: IgorykSoft
[Подробней >>]
 
Евгений Иванов
Статус: Опытный
Общий рейтинг: 141.66
URL: Super Assembler Software
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 107.73
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 114.67
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 121.51
URL: мой сайт
[Подробней >>]
GL
Статус: Опытный
Общий рейтинг: 102.67
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 120.78
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 118.22
[Подробней >>]
Tigran K. Kalaidjian
Статус: Профессиональный
Общий рейтинг: 123.28
URL: Методы оптимизации работы ПК
[Подробней >>]
Lynx
Статус: Опытный
Общий рейтинг: 118.41
Телефон: (8442) 750522
[Подробней >>]


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

Вопрос № 3742. Здравствуйте уважаемые Эксперты. Поделитись, плиз, хорошим мануалом по табличниму алгоритму CRC32. И... (ответов: 1)
Вопрос № 3743. Здравствуйте, уважаемые эксперты. Мне нужно кликнуть мышкой в координатах X и Y всей видимой области... (ответов: 4)
Вопрос № 3744. Здравствуй, Евгений Иванов! :) :) :) Точно! Тёзка! :) ;) К своему вопросу 3739 нужно мне было ещё до... (ответов: 1)
Вопрос № 3745. Доброе время суток господа програмисты. Переполз я недавно под Линух,да так он меня засосал, что мне... (ответов: 4)
Вопрос № 3746. Здравствуйте товарищи еxперты! я вот тут експерементировал с .bat фаылами. но не силен я в DOS'e. ма... (ответов: 5)
Вопрос № 3747. Здравствуйте товарищи еxперты! я вот тут експерементировал с .bat фаылами. но не силен я в DOS'e. ма... (ответов: 3)
Вопрос № 3748. ПРИВЕТСТВУЮ ВАС УВАЖАЕМЫЕ ЭКСПЕРТЫ!!!!!!! У меня следующая проблема!!! На работе компьютер запоролен... (ответов: 3)
Вопрос № 3749. день добрый, господа программеры!! у меня возник вот какой вопрос на счет стэка: в одном из выпусков... (ответов: 5)

Вопросов: 8, ответов: 26


 Вопрос № 3742

Здравствуйте уважаемые Эксперты.
Поделитись, плиз, хорошим мануалом по табличниму алгоритму CRC32. Или расскажите более-менее подробно. Пересмотрел кучу переводов (корявых :() и так и не понял как строить эту таблицу. А с буржуйским не настолько дружу, чтобы искать оригинальные статьи.
Заранее благодарю.



Вопрос отправлен: 20.07.2003, 19:30
Отправитель: sba (sba@litech.net)

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

Отвечает masquer

Здравствуйте, sba!
Я так делаю:
 mov ecx, 256
mov edx, 0EDB88320h
@@BL:
mov eax, ecx
push ecx
mov ecx, 8
@@SL:
shr eax, 1
jnc @F
xor eax, edx
@@:
loop @@SL
pop ecx
mov crc32tab[ecx*4], eax
loop @@BL


Ответ отправлен: 21.07.2003, 12:29
Отправитель: masquer


 Вопрос № 3743

Здравствуйте, уважаемые эксперты.
Мне нужно кликнуть мышкой в координатах X и Y всей видимой области рабочего стола,
но не могу ничего найти про это. Поискал в хелпе по WinAPI, и нашел только
SendMessage,hWnd,wm_LButtonDown,X,Y.
Подскажите может указать какой-нибудь hWnd десктопа, или есть способ проще ?



Вопрос отправлен: 20.07.2003, 20:48
Отправитель: usar (usar@gorodok.net)

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

Отвечает Bob Johnson

Здравствуйте, usar!
Попробуй использовать WindowFromPoint и ChildWindowFromPoint.

* EMan1.5 beta: ---===*** The hell we've created ***===---


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


Отвечает Igoryk

Добрый день, usar!
Насколько я знаю у Рабочего стола только один Hwnd = 0

Ответ отправлен: 23.07.2003, 19:23
Отправитель: Igoryk


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

Приветствую Вас, usar!
Очень просто:
1. SetCursorPosition
2. Потом берёшь номер окна, под которым находится курсор мыши.
или используешь HWND_BROADCAST в SendMessage
3. Посылашь этому окну любые сообщения, в том числе и WM_LBUTTONDOWN


Ответ отправлен: 20.07.2003, 23:33
Отправитель: Евгений Иванов


Отвечает Gibbel

Доброе время суток, usar!
HWND GetDesktopWindow(VOID);


Ответ отправлен: 21.07.2003, 10:35
Отправитель: Gibbel


 Вопрос № 3744

Здравствуй, Евгений Иванов! :) :) :) Точно! Тёзка! :) ;)
К своему вопросу 3739 нужно мне было ещё добавить то, что я и
push offset threadID
делал, и компилировал с разными ключами, результат один: или 0 после вызова CreateThread, или ошибка программы с надлежащим окошком с тремя кнопками (закрыть, отладка, подробности :).
А насчёт mov dx,3bch - ну не знаю что на меня нашло и почему я по-иному туда число положил.. согласен, обычным способом - лучше.
Вот такие пироги...



Вопрос отправлен: 20.07.2003, 21:32
Отправитель: 86 a5 ad ef

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

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

Здравствуйте, 86 a5 ad ef!
Я ещё не изучал, что такое Thread, так что помочь не могу.
А можно без этого обойтись?


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


 Вопрос № 3745

Доброе время суток господа програмисты.
Переполз я недавно под Линух,да так он меня засосал, что мне уже и не освободиться, не подскажите, есть ли токя возможность чтоб программировать на любимом Асме по Линухом,
2. Возможно, у кого есть утилитка util.com память которая смотрит, поделитесь за огромное спасибо...
Удачи всем.
Alex



Вопрос отправлен: 20.07.2003, 22:50
Отправитель: alex (alex5775@rambler.ru)

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

Отвечает Hangatyr

Доброе время суток, alex!
1. На асме есть возможность писать под что угодно, лишь бы там процессор был. Используй NASM/FASM под линух, если, конечно, не нравится AT&T синтаксис...

Ответ отправлен: 21.07.2003, 00:28
Отправитель: Hangatyr


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

Доброе время суток, alex!
NASM!
New releases of NASM are uploaded to the official sites
http://nasm.sourceforge.net' and to ftp.kernel.org' and
ibiblio.org'.


Ответ отправлен: 21.07.2003, 03:25
Отправитель: Евгений Иванов


Отвечает Broken Sword

Приветствую Вас, alex!
о! пополнение в рядах
зайди на мой сайт (линк внизу), там есть несколько исходников, по которым ты без труда разберешься

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


Отвечает GL

Доброе время суток, alex!
2. http://www.xs4all.nl/~hneel/password/kasputil.zip

Ответ отправлен: 21.07.2003, 13:48
Отправитель: GL


 Вопрос № 3746

Здравствуйте товарищи еxперты!
я вот тут експерементировал с .bat фаылами. но не силен я в DOS'e.
максимум что я наваял фаил "compiler4TASM.bat", лежащиы в каталоге с моими прогами.
----------------------------------
asmin asm file.asm
asmin link file.obj /t3 /x
del file.obj
----------------------------------
потом я догнал, что "del file.obj" можно заменить на "del *.obj".
Так надо будет при компиляции нового фаила менять код .bat'a вместо 3х всего в 2х местах.
А хотелось бы чтоб менять надо было всего в одном месте вроде переменной:
--------------------
file="blablabla"
asmin asm....
...
--------------------
или вообще универсальный, чтоб все файлы в каталоге с разрешением ASM компилил и выдавал готовый COM
Здорово будет если дадите небольшой урок по BATникам.
И еще один маленький:
При загрузке из TD.exe (Turbo Debugger из комплекта TASM) любой проги он мне выдает 'Program has No symbol table' и внизу показывает стандартный набор: DS:0000 CD 20 00 .... помогите и с этим тоже.
Спасибо за ваше время,
Антон



Вопрос отправлен: 21.07.2003, 01:20
Отправитель: 00010010 (00010010@nm.ru)

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

Отвечает Igoryk

Добрый день, 00010010!
Урок по BAT-никам в скором времени будет на сайте выложен. А вообще почему бы тебе не использовать %1 - первый аргумент в командной строке.

Ответ отправлен: 23.07.2003, 19:23
Отправитель: Igoryk


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

Доброе время суток, 00010010!
Я использую этот BAT-файл, он стоит на ассоциации на расширение в FAR.
Команда, выполняемая по Enter:
c:zasc.bat !~
Пути замени на свои...
@echo off
cls
e:asmin asm.exe /m9 /t /ml /ie:asminclude %1.asc,%1.obj >_errors.obj
if errorlevel 1 goto exit
e:asmin link.exe /Tdc /c /C /x /yx %1.obj ,%1.com
if errorlevel 1 goto exit
del %1.obj
goto end
:exit
e:asmintohiewhiew.exe _errors.obj
:end
;-------
А это я программы для WIN32 делаю:
ASMH создаёт файл с GLOBAL именами - для IMPORT win32-функций.
Я этот батник кидаю в каталог с разработкой, главные файлы - main.asw и
misc_procs.asw ну и остальные, названы по использованию...
;--- make.bat
@echo off
SET NameExe=Голос в текст
del "%NameExe%.exe" >nul
cls
E:DAYS.PROASMH.COM main.asw asmh.e /gy
E:DAYS.PROASMH.COM cmd_main.asw asmh1.e /gy
E:DAYS.PROASMH.COM MISC_P~1.ASW asmh2.e /gy
E:DAYS.PROASMH.COM msg_dlgs.asw asmh3.e /gy
E:DAYS.PROASMH.COM msg_main.asw asmh4.e /gy
E:DAYS.PROASMH.COM algo.asw asmh5.e /gy
E:DAYS.PROASMH.COM sound.asw asmh6.e /gy
E:DAYS.PROASMH.COM text.asw asmh7.e /gy
e:asmin asm32@.exe /mv40 /m9 /t /ml /kh200000 /ie:asminclude main.asw,main.obj >_errors.obj
rem call c:zerr_asm main.asw
if errorlevel 1 goto exit
e:asmin link32@.exe /P /V4.0 /Af:512 /x /Tpe /aa /c main.obj ,main.exe,,,main.def,main.res
rem e:MASM32BINLink.exe /SUBSYSTEM:WINDOWS /LIBPATH:E:AsmLIBhla kernel32.lib user32.lib gdi32.lib k:Speak.obj
rem call c:zerr_link main.obj
if errorlevel 1 goto exit
ren main.exe "%NameExe%.exe" >nul
goto end
:exit
e:asmintohiewhiew.exe _errors.obj
:end
SET NameExe=
;-----
Когда только ресурсы меняю, то запускаю этот батник:
;--- make_exe.bat
@echo off
SET NameExe=Голос в текст
del "%NameExe%.exe" >nul
cls
e:asmin link32@.exe /P /V4.0 /Af:512 /x /Tpe /aa /c main.obj ,main.exe,,,main.def,main.res
if errorlevel 1 goto exit
ren main.exe "%NameExe%.exe" >nul
goto end
:exit
:end
SET NameExe=
Создаю константы из ресурсного файла для Ассемблера:
;----- make_h.bat
@echo off
cls
E:asmBINh2ash32.exe -qi resource.h
Создаю ресурсы:
;----- makeRes.bat
@echo off
cls
e:cinrcc32.exe -32 -ie:asminclude main.rc -fomain.res
ну и есть батник, чтобы всё это последовательно вызывать
;---- make_all.bat
@echo off
call make_h.bat
call makeRes.bat
call make.bat
;--------
Чтобы все файлы, это или *.asm, или:
for %%q in (*.asm) do call make_all.bat %%q
что-то типа этого...
Насчёт отладочной информации читай в рассылке; иам ключи /zi и /v
Удачи!


Ответ отправлен: 21.07.2003, 03:25
Отправитель: Евгений Иванов


Отвечает _vt

Добрый день, 00010010!
1)Что-то я не пойму, каким компилятором ты пользуешься(что это за asmin asm, я такого не встречал)? Буду использовать для примеров tasm...
2) небольшой урок по bat-файлам:
bat-файлы можно вызывать с параметрами в командной строке: передаешь в ней имя исходного файла( .asm), и DOS подставит это имя внутри bat-файла вместо символа %1.
Например, есть следующий bat:
@echo off
tasm %1.asm
tlink %1.obj
tdstrip /s /c %1.exe
del %1.obj
Сохраняешь его как debug.bat и используешь следующим образом: у тебя есть файл new.asm из которого надо получить new.com. Ты вызываешь в каталоге с этим файлом debug.bat c параметром new (имя файла без расширения)
debug.bat new
и его имя подставится везде вместо %1...
Заодно это пример, как получить отладочную информацию для com-файла, о чем говорит тебе td.exe...

---===*** E-Man 1.4 - waiting for 1.5...***===---


Ответ отправлен: 23.07.2003, 11:12
Отправитель: _vt


Отвечает Ayl

Приветствую Вас, 00010010!
Чтобы завести переменную, надо написать:
set file=blabla
Чтобы ее использовать, надо написать:
%file%
Но в твоем случае переменные неэффективны, так как придется для каждого файла менять батник. Лучше всего использовать параметры командной строки. Они обозначаются как %1, %2 и т.д. до %9. Т.е. тебе нужно написать что-то типа этого:
--- com.bat ---
tasm /m2 /la %1.asm
tlink /t %1.obj
del %1.obj %1.map
И вызывать для компиляции следующим образом:
com blabla
т.е. указываешь имя файла без расширения.
Насчет TD. Он сообщает, что отсутствует символическая таблица имен для программы, в связи с чем TD не может восстановить исходный текст программы и способен только на отладку в режиме просмотра CPU. Отладочную информацию можно записать только в файлы типа EXE. Для этого при компиляции нужно использовать следующие ключи:
TASM : /zi
TLINK: /l /v


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


Отвечает Tigran K. Kalaidjian

Приветствую Вас, 00010010!
Делайте так:
-----------run.bat--------
tasm %1.asm /m3
tlink %1.obj /t3 /x
del %1.obj
--------------------------
Если Вы будете выполнять run.bat с параметром, содержащим имя файла-текста программы без расширения, то этот параметр будет подставляться вместо %1
Пример: У вас есть test.asm, чтобы его скомпилировать и собрать, надо в коммандной строке написать следующее:
run.bat test

Ответ отправлен: 21.07.2003, 14:02
Отправитель: Tigran K. Kalaidjian


 Вопрос № 3747

Здравствуйте товарищи еxперты!
я вот тут експерементировал с .bat фаылами. но не силен я в DOS'e.
максимум что я наваял фаил "compiler4TASM.bat", лежащиы в каталоге с моими прогами.
----------------------------------
asmin asm file.asm
asmin link file.obj /t3 /x
del file.obj
----------------------------------
потом я догнал, что "del file.obj" можно заменить на "del *.obj".
Так надо будет при компиляции нового фаила менять код .bat'a вместо 3х всего в 2х местах.
А хотелось бы чтоб менять надо было всего в одном месте вроде переменной:
--------------------
file="blablabla"
asmin asm....
...
--------------------
или вообще универсальный, чтоб все файлы в каталоге с разрешением ASM компилил и выдавал готовый COM
Здорово будет если дадите небольшой урок по BATникам.
И еще один маленький:
При загрузке из TD.exe (Turbo Debugger из комплекта TASM) любой проги он мне выдает 'Program has No symbol table' и внизу показывает стандартный набор: DS:0000 CD 20 00 .... помогите и с этим тоже.
Спасибо за ваше время,
Антон



Вопрос отправлен: 21.07.2003, 01:32
Отправитель: 00010010 (00010010@nm.ru)

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

Отвечает Hangatyr

Приветствую Вас, 00010010!
1. Я пользуюсь таким:
echo off
SET FN=some_program
tasm32.exe /ml /t /m3 /z /q %FN%.asm
tlink32.exe -Tpe -aa -c -x -V4.0 %FN%.obj,,,import32.lib,,
del %FN%.obj
Он, правда расчитан на win32-приложения и TASM32, но переделать его будет нетрудно.
2. Включи отладочную информацию:
tasm /zi
tlink /v
Только для com-файлов это не сработает.

Ответ отправлен: 21.07.2003, 09:56
Отправитель: Hangatyr


Отвечает Tigran K. Kalaidjian

Доброе время суток, 00010010!
См. ответ на вопрос 3746

Ответ отправлен: 21.07.2003, 14:04
Отправитель: Tigran K. Kalaidjian


Отвечает Bob Johnson

Доброе время суток, 00010010!
@cls
@SET FI=my_prog
@f:\tasm\bin\tasm.exe /m2 %FI%.asm
@f:\tasm\bin\tlink.exe /3 %FI%.obj /t
@del %FI%.map
@del %FI%.obj

* EMan1.5: ---===*** The hell we've created ourselves ***===---


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


 Вопрос № 3748

ПРИВЕТСТВУЮ ВАС УВАЖАЕМЫЕ ЭКСПЕРТЫ!!!!!!!
У меня следующая проблема!!!
На работе компьютер запоролен, винда 2000 проф!!!
И если для этого нужны какие нибудь программы, то немогли ли вы их прислать, ну или хотябы линки!!!
С уважением Ujin!!!



Вопрос отправлен: 21.07.2003, 09:26
Отправитель: Ujin (twixt@rambler.ru)

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

Отвечает Hangatyr

Доброе время суток, Ujin!
А какая проблема-то? Пароль что ли убрать?
Короче, на мыло что-нибудь кину...

Ответ отправлен: 21.07.2003, 10:00
Отправитель: Hangatyr


Отвечает Tigran K. Kalaidjian

Добрый день, Ujin!
Программы для чего? Если это имеет отношение к паролю, то для снятия пароля, угадывания пароля или обхода защиты ? Универсальный совет - format c: /q , тогда и пароль не нужен =)
Должно ли снятие пароля быть заментным для других лиц и пр. Ответьте на эти вопросы и конкретнее сформулируйте свой и напишите сюда.

Ответ отправлен: 21.07.2003, 14:11
Отправитель: Tigran K. Kalaidjian


Отвечает Bob Johnson

Здравствуйте, Ujin!
С моей страницы скачай debploit. Инструкция там же. http://bobjohnson.nm.ru

* EMan1.5: ---===*** The hell we've created ourselves ***===---


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


 Вопрос № 3749

день добрый, господа программеры!!
у меня возник вот какой вопрос на счет стэка:
в одном из выпусков программирования на ассе(006 вроде)
приводился пример кода против отладки и там говорилось, что надо поместить начало стэка внутрь кода, значит в этом примере главное это просто поставить метку где-нибудь внутри кода и занести адрес метки в SP ?? или я что-то ни так понял??
заранее спасибо



Вопрос отправлен: 21.07.2003, 16:31
Отправитель: Poma

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

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

Приветствую Вас, Poma!
Тут используется свойство стека и отладчика. Отладчик использует стек и
затрёт код, который останется в неприкосновенности, если программа работает
в обычном режиме, не в отладчике.
Вот и подумай, как это можно сделать?


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


Отвечает Ayl

Добрый день, Poma!
Ты все правильно понял. Именно так и нужно сделать.

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


Отвечает Tigran K. Kalaidjian

Доброе время суток, Poma!
АФАИР там имелось ввиду, что самомодифицирующийся код (в частности при помощи стека) является защитой от отладки.

Ответ отправлен: 21.07.2003, 19:28
Отправитель: Tigran K. Kalaidjian


Отвечает Bob Johnson

Доброе время суток, Poma!
Да, типа того.

* EMan1.5: ---===*** The hell we've created ourselves ***===---


Ответ отправлен: 22.07.2003, 00:28
Отправитель: Bob Johnson


Отвечает Lynx

Добрый день, Poma!
Вобщем ты всё понял правильно, только надо смотреть, что бы в регистре SS ничего не напутать. :)))


Ответ отправлен: 25.07.2003, 11:15
Отправитель: Lynx



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (33)
C / C++ (23)
Perl (4)
Builder / Delphi (20)
Pascal (22)
Basic / VBA (11)
Java / JavaScript (11)
PHP (8)
Криптография (8)
WinAPI (12)
Пользователю
Windows 95/98/Me (46)
Windows NT/2000/XP (41)
"Железо" (35)
Поиск информации (24)
Администратору
Windows NT/2000/XP (23)
Linux / Unix (9)
Юристу
Гражданское право (11)
Семейное право (6)
Трудовое право (9)
КоАП (5)

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




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


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


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

В избранное