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

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


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

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

Выпуск № 494
от 27.02.2003, 09:10

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


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

Broken Sword
Статус: Профессиональный
Общий рейтинг: 125.85
URL: моя рассылка по Protected Mode
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 144.97
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 138.91
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
 
Igoryk
Статус: Профессиональный
Общий рейтинг: 136.32
URL: IgorykSoft
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 117.22
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.55
[Подробней >>]
 
Илья
Статус: Доверительный
Общий рейтинг: 108.84
[Подробней >>]
Joy
Статус: Доверительный
Общий рейтинг: 125
[Подробней >>]
Александр
Статус: Начальный
Общий рейтинг: 106.25
[Подробней >>]
 
Portnov
Статус: Профессиональный
Общий рейтинг: 113.39
URL: Мой сайтик...
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 113.9
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 150.85
URL: Программирование
[Подробней >>]


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

Вопрос № 2629. Уважаемые эксперты,не подскажете ли мне шде можно найти информацию по написанию sys драйверов под NT... (ответов: 2)
Вопрос № 2630. Ситуация следующая: прога в формате MZ, используя DMPI менеджер перехожу в защищенный режим. Под Вын... (ответов: 2)
Вопрос № 2631. Здравсвуйте, уважаемые эксперты. Как это ни банально, у меня к Вам вопрос. Что есть кодовая страница... (ответов: 6)
Вопрос № 2632. Здравствуйте уважаемые эксперты!!! В 2000 винде под тасм 5.0 можно рабо... (ответов: 2)
Вопрос № 2633. Здравствуйте товарищи эксперты! Тут такая проблема. Прога лажовая,на Delphi - тест на решение графов... (ответов: 1)
Вопрос № 2634. Доброго времени суток! Объясните, пожалуйста, что может значить такое: "моделирование визуализа... (ответов: 2)
Вопрос № 2635. Расскажите, пожалуйста о защищённом режиме. В чём отличие DPMI от XMS, и что они дают. Если у кого е... (ответов: 3)
Вопрос № 2637. Доброе время суток экспертам! Вопрос по использовании asm & Delphi, 1. Можно ли использовать в ассем... (ответов: 4)
Вопрос № 2638. Здравствуйте Эксперты!!! 1.Вопрос по SoftIce Почему когда я ставлю bpx ExitProcess(или другую функц... (ответов: 4)

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


 Вопрос № 2629

Уважаемые эксперты,не подскажете ли мне шде можно найти информацию по написанию sys драйверов под NT-системы на асм? Дайте толковую ссылку если кто знает.
Спасибо.



Вопрос отправлен: 21.02.2003, 13:19
Отправитель: Ingrem

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

Отвечает Broken Sword

Приветствую Вас, Ingrem!
www.wasm.ru -> статьи -> секреты Win32 -> Драйверы режима ядра Windows 2000 (5 частей)


Ответ отправлен: 21.02.2003, 13:51
Отправитель: Broken Sword


Отвечает masquer

Здравствуйте, Ingrem!
То, что BrokenSword написал - правильно, но перед этим лучше DDK раздобыть и с основами разобраться, примеры посмотреть (на Си++, правда).

Ответ отправлен: 21.02.2003, 14:27
Отправитель: masquer


 Вопрос № 2630

Ситуация следующая:
прога в формате MZ, используя DMPI менеджер перехожу в защищенный режим. Под ВыньХР TD при вызове процедуры перехода вылетает. Подскажите какой отладчик использовать. Если есть возможность киньте на мыло.
Заранее благодарю.


Приложение:


Вопрос отправлен: 21.02.2003, 17:43
Отправитель: Liss (slipatov@yandex.ru)

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

Отвечает Maverick

Доброе время суток, Liss!
А SoftIce чем не нравится?
Вот сдесь есть много отладчиков: www.exetools.com


Ответ отправлен: 22.02.2003, 14:45
Отправитель: Maverick


Отвечает Igoryk

Добрый день, Liss!
TD здесь явно не подойдет. Обычно программы такого плана отлаживают под SoftIce.

Ответ отправлен: 22.02.2003, 14:53
Отправитель: Igoryk


 Вопрос № 2631

Здравсвуйте, уважаемые эксперты. Как это ни банально, у меня к Вам вопрос. Что есть кодовая страница? По каким адресам она расположена?
Объясню, чем вызван вопрос. У меня есть бо-о-ольшая Fox Pro’шная база данных, которая работает из под Dos’а. Я хочу сделать ее с помощью Delphi из под Windows’а. Но мне надо её перекодировать с 866 кодовой страницы на 1251. Вот хочу на Асме написать процедуру, которая бы этим занималась. Что – то типа: берём первый символ, идём на 1251 страницу, ну и перекодируем :). Так вот, буду рад если кто-нибудь просветит меня в этом вопросе. С уважением. Алексей.



Вопрос отправлен: 21.02.2003, 19:32
Отправитель: Алексей (Dundin999@rambler.ru)

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

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

Приветствую Вас, Алексей!
Тебе что больше делать нечего, как перекодировать базы данных, или
это хобби? ;)
Настрой в ALIAS'е LANGDRIVER на 866 кодовую страницу и спокойно работай
с базой. Ну а если так уж хочется перекодировать, то с дельфи поставляется
программка, которая называется вроде DUMPDUB, так вот она как раз для
перекодирования и сделана.
А что касается кодовой страницы, то она нигде в памяти не расположена.
Кодовая страница - это что-то вроде стандарта или соглашения, которое
определяет как отображать символы c кодами от 128 до 255.


Ответ отправлен: 21.02.2003, 20:44
Отправитель: ASMодей


Отвечает Ayl

Приветствую Вас, Алексей!
Ничего вручную тебе перекодировать не нужно. Для доступа к базе ты будешь настраивать LANGDRIVER. Так вот, в нем ты и укажешь, что база-то у тебя, оказывается, хранится в DOS'овской кодировке. В результате при обращении к базе в фоновом для тебя режиме будут осуществлятся преобразования из DOS-866 в WIN-1251 при чтении данных из базы и из WIN-1251 в DOS-866 при записи в базу.


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


Отвечает Илья

Доброе время суток, Алексей!


Ответ отправлен: 22.02.2003, 01:45
Отправитель: Илья


Отвечает Joy

Доброе время суток, Алексей!
На мой взгляд ты просто страдаешь ерундой. Если ты пишешь под Выньды на Делфи, то при работе с базами данных (не помню как компонент называется) можно выставить кодировку символов. А если все таки хочешь перекодироваться, то поищи в Инете таблицы перекодировок. Но тогда ты еще должен знать и учитывать структуру файла, который ты хочешь перекодировать (чтобы лишнего не перекодировать).

Ответ отправлен: 22.02.2003, 07:23
Отправитель: Joy


Отвечает Александр

Доброе время суток, Алексей!
Во-первых, кодовая таблица это набор номеров присваиваемый символам национальных алфавитов. Причём некоторые злосчастные алфавиты, такие как кириллица имеют несколько таких кодовых таблиц. Во-вторых, если ты знаешь какой номер у одного и того же символа в 2-х разных кодовых таблицах, то произвести перекодировку можно на любом языке программирования без всяких проблем. В-третьих, тебе даже не надо так мучаться, потому что в Windows в свойствах ODBC можно просто задать так, что по умолчанию DBF-файлы будут открываться в 866 кодовой странице. Вот так.


Ответ отправлен: 22.02.2003, 09:54
Отправитель: Александр


Отвечает Igoryk

Здравствуйте, Алексей!
Кодовая страница - это страница символов, которые употребляются в данной стране. Она не расположена ни на каком адресе. Правда в BIOS есть пространство, отведенное под "написание" символов на экране в текстовом реиме монитора - явно не то, что тебе нужно.
Вобщем твоя задача составить таблицу символов для кодовой страницы 1251 и 866. И обращаясь к символу в таблице 866 получишь символ в 1251. - Это если ты под ассемблер программируешь, но а если ты программируешь под Delphi, то используй функцию OemToChar для перекодировки из 866 в 1251, и CharToOem для перекодировки 1251 в 866.

Ответ отправлен: 22.02.2003, 14:53
Отправитель: Igoryk


 Вопрос № 2632


Здравствуйте уважаемые эксперты!!!
В 2000 винде под тасм 5.0 можно работать только с плоской моделью или есть еще какие-нибудь варианты?



Вопрос отправлен: 21.02.2003, 22:51
Отправитель: док

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

Отвечает masquer

Здравствуйте, док!
А по-моему, других вариантов и нет

Ответ отправлен: 22.02.2003, 13:40
Отправитель: masquer


Отвечает Igoryk

Добрый день, док!
Под TASM можно работать с любой моделью памяти. Вопрос только в том под какую ОС ты собираешься программировать. Если под Win, то только FLAT, если под DOS (Сеанс MS-DOS), то любую.

Ответ отправлен: 22.02.2003, 14:53
Отправитель: Igoryk


 Вопрос № 2633

Здравствуйте товарищи эксперты!
Тут такая проблема. Прога лажовая,на Delphi - тест на решение графов. Взломать
нет проблем (да мне это и не надо),при просмотре кода проги я наткнулся на
строчки
* Possible String Reference to: 'Do you wanna cheat?'
* Possible String Reference to: 'GOD MODE ON :)'
Как я понял по коду, разработчик сделал фишку обхода теста.
И активируется при кликаньи по этой бороде.
object StatBar: TStatusBar
OnClick = EnableCheat
OnDblClick = VisibleCheat
end
Но вот дальше что бы эта фишка заработала прогу надо запустить с параметром или
нажать какие-то клавиши, я понятия не имею.
Вот как это сделать меня и интересует. Если кто-то может помочь я вышлю прогу на
мыло 200kb. Не думайте, что я один из ленивых студентов. Это просто для общего
развития. Мне больше не к кому обратится. Заранее спасибо.




Вопрос отправлен: 22.02.2003, 01:06
Отправитель: mudvayne

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

Отвечает masquer

Доброе время суток, mudvayne!
Ну так там же написано, кликаешь раз - Enable, на двойной щелчок - Visible

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


 Вопрос № 2634

Доброго времени суток!
Объясните, пожалуйста, что может значить такое: "моделирование визуализации
видимых регистров процессора 80486 в защищенном режиме(+эмуляция многозадачного режима
функционирования ЭВМ при решении 5 задач)". это что-то вроде отладчика: выполняется команда -
сомтришь на состояние регистров ??
P.S. я не прошу мне ничего решить, просто того, кто дал это задание, возможности
побеспокоить, к сожалению, нету.



Вопрос отправлен: 22.02.2003, 01:56
Отправитель: bik

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

Отвечает Александр

Здравствуйте, bik!
Я бы прочитал это так: "Вывод на экран регистров процессора в защищённом режиме и реализация диспетчера для переключения между 5-ью задачами". Данный вопрос очень хорошо рассмотрен в книге П.И. Рудаков, К.Г. Финогенов "Программируем на языке ассемблера IBM PC". Было несколько разных изданий этой книги. Последнее вышло в издательстве "Диалог-МИФИ" в 2001 году и называлось "Язык ассемблера: уроки программирования".


Ответ отправлен: 22.02.2003, 10:11
Отправитель: Александр


Отвечает Portnov

Доброе время суток, bik!
Похоже на то... Правда, может, имелось ввиду, что не реальные программы отлаживать, а "модели"... Т.е., напр., в каких-то псевдокодах, ("прога" - массив структур типа
struct CODE {
char instr_num;
int first_arg;
int second_arg;} )
Вообще, в любом случае довольно сложное задание...

Ответ отправлен: 22.02.2003, 22:26
Отправитель: Portnov


 Вопрос № 2635

Расскажите, пожалуйста о защищённом режиме. В чём отличие DPMI от XMS, и что они дают. Если у кого есть доки, то шлите на мыло или даёте ссылку.
Обязательно ли выходить из защищённого режима так:
mov ax, 4c00h
int 21h



Вопрос отправлен: 22.02.2003, 07:50
Отправитель: Xych (huch@ezmail.ru)

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

Отвечает Александр

Здравствуйте, Xych!
Ну ты и вопрос задал!!! DPMI - это API для облегчения программирования в ЗАЩИЩЁННОМ режиме в среде DOS. XMS - eXpanded Memory Specification - API для доступа к памяти свыше 1МБ в РЕАЛЬНОМ режиме.
mov ax, 4c00h
int 21h
Это есть выход из программы в DOS в РЕАЛЬНОМ режиме. Для выхода из ЗАЩИЩЁННОГО без доработки напильником эта конструкция не годится, поскольку любая команда int будет вызывать исключение ЗАЩИЩЁННОГО режима. Поэтому для выхода из программы из ЗАЩИЩЁННОГО режима надо либо первоначально перейти в РЕАЛЬНЫЙ режим и там вызвать это прерывание, либо написать нормальный обработчик исключений для ЗАЩИЩЁННОГО режима.


Ответ отправлен: 22.02.2003, 10:20
Отправитель: Александр


Отвечает Maverick

Здравствуйте, Xych!
Почитай у Зубкова, там вкратце рассмотрено.
Пересказывать не буду. Посмотреть можно здесь:
http://netlib.wallst.ru/


Ответ отправлен: 22.02.2003, 14:45
Отправитель: Maverick


Отвечает Igoryk

Добрый день, Xych!
Доки посмотри на sasm.narod.ru. А выход осуществляется именно так. Если ты конечно под DOS работаешь, а не собственную ОС делаешь. Почему именно так, а не ret или int 20h? Потому, что эти команды могут выходить только из текущего сегмента, а ты завершаешь многосегментную программу.

Ответ отправлен: 22.02.2003, 14:53
Отправитель: Igoryk


 Вопрос № 2637

Доброе время суток экспертам!
Вопрос по использовании asm & Delphi,
1. Можно ли использовать в ассемблерных вставках
winApi функции.(хоть и через Ж..пу пользоваться В Делфи через асм winApi но все же.....! хотелось бы узнать)
2. Надо ли для использования WinApi подключать библиотеки,
если да то подойдут ли библиотеки из masm32 или же Delphi
и так поймет такие инструкции
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax
invoke RegisterClassEx, addr wc
Если у кого есть литература по использованию
асм и Delphi скиньте плз.на sbtr@mail.ru желательно на русском.
или ссылочку на подобный материал.



Вопрос отправлен: 22.02.2003, 16:04
Отправитель: Andrey

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

Отвечает Joy

Здравствуйте, Andrey!
Наверное этот вопрос надо было адресовать экспертам по Delphi.
1. На сколько я помню, чтобы в Делфях использовать функции API не нужен никакой ассемблер.
2. У Делфи свои не плохие библиотеки.
Вот тебе очень полезная ссылочка по Делфи http://delphi.mastak.ru/

Ответ отправлен: 25.02.2003, 08:39
Отправитель: Joy


Отвечает Portnov

Добрый день, Andrey!
1. Да.
2. Библиотек не надо, надо тольо подключить юниту Windows. Но invoke Delphi не поймет. Вместо invoke RegisterClassEx, param надо использовать push param // call RegisterClassEx.
С уважением, Portnov.

Ответ отправлен: 22.02.2003, 22:33
Отправитель: Portnov


Отвечает baldr

Здравствуйте, Andrey!
1. Нужно! Только эти системные функции и можно вызывать! Прерывания в Win32 вызывать
запрещено, так что только API-функции и дадут тебе все необходимое.
2. IMHO, inc-файлы от masm не подойдут, потому что у Borland свой формат встроенного
ассемблера, и, надо сказать, сильно урезанный. Макросы он, кажется ,не понимает, а та же
invoke - не что иное как макрос! И вызывать API тебе придется только с помощью CALL,
причем предварительно как-то узнав адрес этих функций. :( Лучший выход - написать на асме
свою dll, которую и вызывать из Delphi.


Ответ отправлен: 23.02.2003, 00:26
Отправитель: baldr


Отвечает Bob Johnson

Доброе время суток, Andrey!
В Delphi асм иногда просто необходим, например, когда нужно какой-либо функции (именно API) передать указатель на какую-либо структуру, а Delphi при этом утверждает, что это несоответствие типов.
Асм использовать очень просто:
asm
push IDC_ARROW
push 0
call LoadCursor
...
end
Библиотеки (.lib) Delphi принципиально не нужны. Там можно описать любую функцию как external и все будет ОК (delphi при этом будет статически связывать твою программу с нужной библиотекой). См help - там это очень просто.


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


 Вопрос № 2638


Здравствуйте Эксперты!!!
1.Вопрос по SoftIce
Почему когда я ставлю bpx ExitProcess(или другую функцию API)
он мне выдает Simbol not defined (EXITPROCESS).
Как с этим бороться?
На MessageBox и некоторые другие он реагирует нормально.
2.Посоветуйте уневирсальный дизассемблер под win32 чтобы он при дизассемблировке показывал имя WinApi
или хотя бы список используемых в программе API.Я использовал Win32Dasm, но он не для всех программ показывает
Import и Export.Тоже самое и Быстром просмотре.
Заранее спасибо.
p.s Огромный привет эксперту Joy.



Вопрос отправлен: 23.02.2003, 09:08
Отправитель: m0v8lack

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

Отвечает Broken Sword

Доброе время суток, m0v8lack!
1. Набери EXP ExitProc. Что ты видишь?
2. :) не во всех прогах говоришь? а распаковывать пробовал перед дизассемблированием? (здесь я под распаковкой понимаю есесно не извлечение из zip-архива, а внутреннюю распаковку проги, это на всяк. случай).

Ответ отправлен: 23.02.2003, 11:51
Отправитель: Broken Sword


Отвечает Maverick

Здравствуйте, m0v8lack!
IDA, классный дизассемблер.
В инете он валяется.

Ответ отправлен: 23.02.2003, 13:56
Отправитель: Maverick


Отвечает Joy

Здравствуйте, m0v8lack!
2. Чем тебе не нравиться IDA? У меня стоит версия 4.1.5.520 и вроде все, что надо показывает, как под ДОС, так и под Выньду.
m>p.s Огромный привет эксперту Joy.
А чем это я провинился? :)

Ответ отправлен: 24.02.2003, 07:46
Отправитель: Joy


Отвечает masquer

Приветствую Вас, m0v8lack!
1. А некоторые функции должны иметь A или W в конце, ну, или символы добавить нужно для библиотеки.
2. IDA

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



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (32)
C / C++ (25)
Perl (3)
Delphi (17)
Pascal (21)
Basic / VBA (11)
Java / JavaScript (8)
PHP (5)
MySQL / MSSQL (4)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (25)
"Железо" (28)
Поиск информации (15)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (11)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (4)
КоАП (4)

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




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

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


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

В избранное