Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Операционные системы общие вопросы
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2010, 13:49   #11
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Это вы про какие нулевые символы говорите ? Они там будут и в 16 разрядных и в 32 разрядных программах. Это такая особенность PE формата, а точнее линковщика, который будет собирать exe.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 10.03.2010 в 13:52.
Goodwin98 вне форума Ответить с цитированием
Старый 10.03.2010, 13:54   #12
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

ну в 16 и 32 битных прогах их количество различается. Да и текст в начале проги разный. это в любом листере видно.
если чем помог, поставьте отзыв на весы
Xatr вне форума Ответить с цитированием
Старый 10.03.2010, 13:59   #13
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Stub, т.е. программа, которая выводит этот текст, если запустить exe под досом, может быть любой. Ее можно даже после компиляции сменить или обрезать до минимума, если есть знания как.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 10.03.2010, 14:50   #14
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

NE-EXE (древность из win 3.1)

Окрываем файл, первые 2 байта MZ? Читаем word по смещению 3Ch, идём по указанному адресу, если видим там 4Eh45h (ASCII "NE") - значит это NE-EXE, код в нём 16-разрядный.

PE-EXE

Окрываем файл, первые 2 байта MZ? Читаем dword по смещению 3Ch, идём по указанному адресу, если видим там 50h45h00h00h (ASCII "PE\x0\x0") - это PE-EXE, код 32/64-разядный

С DOS EXE всё сложнее, архитектура х86 вообще не позволяет различить 16- и 32-разрядные регистры, т.е. EAX кодируется как же, как AX. Разрядность определяется префиксом определения размера операндов 66h: встречается в 16-разрядном коде - процессор начинает трактовать следующие за ним инструкции как 32-разрядные, встречается ещё раз - опять 16. Такая же ситуация с префиксом определения размера адреса 67h.
пыщь
JTG вне форума Ответить с цитированием
Старый 10.03.2010, 14:58   #15
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
Разрядность определяется префиксом определения размера операндов 66h: встречается в 16-разрядном коде - процессор начинает трактовать следующие за ним инструкции как 32-разрядные, встречается ещё раз - опять 16. Такая же ситуация с префиксом определения размера адреса 67h.
Немного поправлю... Префикс действует только на следующую за ним команду...
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бит чётности fogmistery Общие вопросы C/C++ 1 02.01.2010 22:58
Как установить i-й бит целого числа qwerty09 Общие вопросы C/C++ 4 09.07.2009 00:20
Как различить два процесса одного приложения? viter.alex Win Api 1 31.03.2009 21:01
выделить бит odi_noki Паскаль, Turbo Pascal, PascalABC.NET 10 15.10.2008 00:43
1 байт 9 бит ?! Иллидан Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 13.04.2008 12:47