Ссылка на AT & T синтаксис ассемблерной арифметики с плавающей точкой - PullRequest
7 голосов
/ 11 октября 2010

На прошлой неделе я пытался найти достойный ресурс по арифметике с плавающей запятой для сборки x86 с использованием синтаксиса AT & T.В идеале, список кодов операций, что они делают, и где хранятся числа с плавающей запятой.Я знаком с представлением IEEE 754.Я не знаком со стеком с плавающей запятой и любой сборкой, относящейся к арифметике с плавающей запятой.

Странно, как трудно это найти.

РЕДАКТИРОВАТЬ: Я смотрел на gcc -S выходной за последний месяц обучения сборке.Вот как я понял все, кроме арифметики с плавающей точкой.Даже после просмотра десятков небольших программ, скомпилированных без оптимизации, я все еще не могу разобраться с кодами операций с плавающей запятой и стеком.В Интернете я нашел только тривиальные примеры.

1 Ответ

4 голосов
/ 11 октября 2010

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

После изучения общей сборки x86 синтаксис AT & T не так сложен в изучении.Основные моменты, на которые следует обратить внимание:

  • регистры имеют префикс %;числовые константы начинаются с префикса $
  • порядок регистров меняется для большинства двухоперандных инструкций (т. е. сначала источник, конечный результат)
  • имена инструкций определяют размер;поэтому вместо mov dword ptr [ebx], 1337 вы бы сказали movl $1337, (%ebx).
...