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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2015, 18:59   #1
garuna
Форумчанин
 
Аватар для garuna
 
Регистрация: 13.04.2013
Сообщений: 180
Вопрос Что поправить чтоб работало на 64-битных ОС?

Пишу на Delphi. Скажу сразу - с ассемблером не знаком. Нашел в инете код, который использует в одной функции ассемблерную вставку. Следующая функция отрабатывает на 32-битных ОС, но на 64-битных вылетает ошибка Access Violation.
Подскажите, что нужно подправить, чтобы работало?

Код:
function GetPDB: PPEB; stdcall;
asm
  MOV EAX, DWORD PTR FS:[30h] // ошибку  выдает на этой строке!!!!
end;

Последний раз редактировалось garuna; 06.10.2015 в 19:06.
garuna вне форума Ответить с цитированием
Старый 06.10.2015, 19:20   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Это грязный хак, наверняка рассчитанный на конкретную версию Delphi (или несколько похожих). Для портирования на 64 бита нужно раскрутить всю цепочку -- зачем это автор сделал, что он имел в виду и пр. Нужен контекст.

Навскидку могу сказать, что 32-битный Delphi держит в FS указатели TLS, которые обычно используются для отслеживания исключений и связанных с ними вещей.
Vapaamies вне форума Ответить с цитированием
Старый 06.10.2015, 19:38   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Ну всего лишь надо подогнать описание типов (в частности пеба под х64) и читать ужо по смещению 60, да еах не тру в х64
p51x вне форума Ответить с цитированием
Старый 06.10.2015, 19:50   #4
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Ха-ха-ха, круто! А где можно прочитать, что Delphi пихает в TLS? Это где-то официально документировано?
Vapaamies вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
курсовая (листинг прописан, не могу только в программу оформить, что бы работало) новичок, что взять :) ничегонепонимаю Фриланс 2 19.02.2012 13:49
как добавить внутрь jar файла mdb файл что работало ZigaZaga Java Базы данных (JDBC, JPA, Hibernate) 0 05.10.2010 15:21
TDBGridEh + STFilter Как сделать что бы работало? Jenya Компоненты Delphi 2 24.02.2009 06:02