2009-05-13 4 views
1

Может кто-нибудь объяснить, как использовать макросы в x86 в сборе?Макросы в кодировке x86

+0

Предложение - это очень неопределенный вопрос. Не могли бы Вы уточнить? – Foredecker

+0

Кроме того, это может помочь, если вы скажете, какой компилятор вы используете для таргетинга, например. MASM. – rjzii

ответ

7

Это зависит от того, что вы используете.

Обычно макрос ассемблера принимает следующую форму;

begin MyMacro %1, %2 
    mov eax, %1 
    add eax, %2 
end 

Это будет существовать в разделе заголовка исходного кода и не выводит никакого кода, если на него не ссылаются. Вы бы ввели это с другим ассемблером.

mov ecx, 88 
MyMacro ecx, 12 
asr ecx, 3 

«Параметры»% 1 и% 2 в этом случае будут заменены ECX и 12 генерирования следующих выходных данных

mov ecx, 88 
mov eax, ecx 
add eax, 12 
asr ecx, 3 
+0

поблагодарить u за решение :) – user106300

+0

никаких проблем, пожалуйста, отметьте как ответ –

+0

Great Ian. Даже плохо спрошенный вопрос заслуживает хорошего ответа :) – jyz

0

Это действительно широкий вопрос. Существует несколько способов использования макросов. Некоторые разработчики ассемблерного языка используют их в тоннах, некоторые ненавидят их.

Одним из наиболее распространенных способов является использование макросов для пролог функций и эпилогов. Другой - использовать их для выбора параметров сохранения в стеке.

Смежные вопросы