169 похожих чатов

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно

переданных меток?
Просто .label1-.label2, и вернуть значение.

35 ответов

130 просмотров

Не понял, а что мешает просто написать label1-label2?

КТ315- Автор вопроса
The Bird of Hermes
Не понял, а что мешает просто написать label1-labe...

Потому что придётся писать это слииишком много)

КТ315
Потому что придётся писать это слииишком много)

Так тебе все равно надо будет в макрос метки передавать

КТ315
Потому что придётся писать это слииишком много)

эм, а наименования меток писать что не придётся что ли, а если так то разница не велика

КТ315
Потому что придётся писать это слииишком много)

Или у тебя метки по номерам? Типо label1, label2,... labelN?

КТ315- Автор вопроса
The Bird of Hermes
Так тебе все равно надо будет в макрос метки перед...

Это будет красивее. ebp+(off DATA_START) Вместо ebp+(DATA_START-.copierCode)

КТ315- Автор вопроса
Aiwan \ (•◡•) / _bot
var dd lbl1 - lbl2

и чем это не устраивает?

КТ315
Это будет красивее. ebp+(off DATA_START) Вместо ...

Распиши примерный синтаксис, как ты его видишь на примере его использования

КТ315- Автор вопроса
Aiwan \ (•◡•) / _bot
и чем это не устраивает?

Я пишу независимый код, и мне это вычисление смещения надо как раз чтобы находить мои переменные.

КТ315- Автор вопроса
The Bird of Hermes
Распиши примерный синтаксис, как ты его видишь на ...

Вот так: off DATA_START Внутри напрямую пропиши arglabel-.copierCode Потому что всё относительно неё адресоваться будет.

КТ315
Это будет красивее. ebp+(off DATA_START) Вместо ...

а чем подобное не устраивает default_http_connection: db 'Connection: ' .value = $ - default_http_connection db 'close ', 13, 10 ; or keep-alive .length = $ - default_http_connection

КТ315- Автор вопроса
КТ315- Автор вопроса
КТ315
Да.

Не получится, макросы не могут возвращать значение в фасме. Поэтому я постоянно говорю, что exitm нужен)

КТ315
Это вообще не про то))

а по моему то, по примеру выше можно и такое заюзать

КТ315- Автор вопроса
Mixail Frolov
а по моему то, по примеру выше можно и такое заюза...

start: call @f @@: pop eax sub eax, 5 mov ebx, dword[eax+(myvar1-start)] mov ebx, dword[eax+(myvar2-start)] mov ebx, dword[eax+(myvar3-start)] ret myvar1: myvar2: myvar3:

КТ315- Автор вопроса
The Bird of Hermes
virtual at eax используй

Я не разбираюсь в макросах вообще)

КТ315
Я не разбираюсь в макросах вообще)

virtual позволяет объявить динамическую метку относительно любого адреса

КТ315- Автор вопроса
The Bird of Hermes
virtual at eax используй

Ааа, не, не вариант. Там не всегда через eax адресация будет.

КТ315
Ааа, не, не вариант. Там не всегда через eax адрес...

Давай так, а что ты в принципе хочешь автоматизировать?

КТ315- Автор вопроса
КТ315
Ааа, не, не вариант. Там не всегда через eax адрес...

может сделаешь как у меня, через переменную и $ - base ? так красивее будет в самом коде

КТ315- Автор вопроса
Mixail Frolov
может сделаешь как у меня, через переменную и $ - ...

Дубликаты меток создавать надо, а у меня их примерно 30-40.

КТ315
Вычисление смещения относительно метки.

Относительно одной определённой метки?

КТ315- Автор вопроса
Aiwan \ (•◡•) / _bot
Lea eax, [metka + 5]

Я выгрузил код в другую память. Допустим, в стек. И metka указывает на 0x401000, а не на правильный новый адрес внутри кода в стеке, и код сломался. Как пример.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта