Простая встроенная программа сборки не компилируется - PullRequest
1 голос
/ 30 апреля 2011

Это сводит меня с ума ... Я уверен, что здесь происходит что-то очень маленькое, я делаю что-то не так, но не могу понять, что это, после 30-минутной попытки и поиска в Google.Я пытаюсь скомпилировать очень простую C-программу с некоторой встроенной сборкой, а затем разобрать ее, чтобы получить машинный код для инструкций.Это для школьного проекта программирования.Вот моя последняя попытка:

int main() 
{
asm(
    "movl   $0x5bc1229f,0x0804c1e8"
    "movl   $0x08048f9c,%edx"
    "push   %edx"
    "ret"
      );
}

Когда я скомпилирую это, я получаю ошибки:

/var/folders/kI/kIAe03vJFdClYy0r0mmBp++++TI/-Tmp-//cc2xKnoz.s:9:junk `movl $0x08048f9c' after expression

/var/folders/kI/kIAe03vJFdClYy0r0mmBp++++TI/-Tmp-//cc2xKnoz.s:9:bad register name `%edxpush%edxret'

Спасибо за вашу помощь:)

1 Ответ

2 голосов
/ 30 апреля 2011

Попробуйте

int main()
{
asm(
    "movl   $0x5bc1229f,0x0804c1e8\n\t"
    "movl   $0x08048f9c,%edx\n\t"
    "push   %edx\n\t"
    "ret\n\t"
      );
}
...