![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Dimannn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 14.4.2005 Где: Владимир Репутация: нет Всего: 1 |
Как работать со строковыми константами?
нужно что-то вроде mov eax, Space , но чтобы в eax записалось на первые четыре байта спейса, а адрес. Space - константа. -------------------- Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут? Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru |
|||
|
||||
| BUGOR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 5 Всего: 16 |
По-моему только через доп. переменную - указатель.
Это сообщение отредактировал(а) BUGOR - 27.8.2006, 10:58 |
|||
|
||||
| RideX |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 4 Всего: 7 |
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
а не через lea?????
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| BUGOR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 5 Всего: 16 |
Romikgy, в случае с константой нет. Если бы это была переменная типа string, тогда бы lea подошла.
|
|||
|
||||
| RideX |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 4 Всего: 7 |
Можно по разному, вот пример:
Здесь соответствующую строку можно заменить той, которая в комментарии. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
С константами дело гиблое! Они хранятся в специальной области памяти. Попытка обратится к данным по адресу константы приводит к ошибке! Обратитесь к Петровичу он в этом деле большой специалист (по крайней мере написал оч. хорошую статью описывающую все типы строк и их отображение в памяти)
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| BUGOR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 5 Всего: 16 |
alexeis1, дай пожалуйста ссылку на статью.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RideX |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 4 Всего: 7 |
||||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
RideX, кажись я понял, проблемы возникают не при чтении а при записи по адресу, константы.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| RideX |
|
||||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 4 Всего: 7 |
Ага, типа того..
Это сообщение отредактировал(а) RideX - 28.8.2006, 17:21 |
||||
|
|||||
| Dimannn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 14.4.2005 Где: Владимир Репутация: нет Всего: 1 |
Извиняюсь за задержку, технические сложности.
Но суть проблемы в том, чтобы минимальными усилиями заставить включить строковую константу в конечный файл, но надо учесть, что после операций над ним, операция на памятью под адресом константы может вызвать ошибку. Константа должна быть локальной и нетипизированной! mov eax, Space и mov eax, dword ptr(Space) компилируются одинаково, и при этом они счетают константу DWORDом(при SPACE = #10#13#15#14 получаю mov eax, 10131415) Собственно, задача моя заключается в том, чтобы заставить компилятор сделать несколько постого места после retn процедуры, а строковые константы именно туда и пишутся. Добавлено @ 19:10 RideX, Собственно говоря, это можно сделать и без ассемблера.
-------------------- Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут? Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru |
|||
|
||||
| RideX |
|
||||||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 4 Всего: 7 |
Я очень рад, думаю теперь ты с асмом на ты!
Не может быть, только что проверил
eax = 00401F10, и по этому адресу лежит:
...что тебе и нужно. Это сообщение отредактировал(а) RideX - 6.9.2006, 21:57 |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |