Я знаю, что мой ответ немного опоздал. Лучше поздно, чем никогда.
Когда вы компилируете файл сборки, в коде могут отображаться два вида директив.
Один вид - это директивы, поддерживаемые вашим ассемблером, в вашей ситуации это GNU as
директивы.
Другой тип зависит от вашего языка ассемблера, и поскольку вы, очевидно, используете здесь сборку mips, .ent
на самом деле является директивой mips assembly
.
Вот руководство , где вы можете найти директивы .ent .frame .fmask .mask
: все они являются директивами сборки mips. Или вы можете просто Google MIPS Assembly Language Programmer’s Guide
. Перейдите к chapter 8, Pseudo Op-Codes
и вы получите все, что вам нужно.
Вы можете задаться вопросом, как GNU as
может поддерживать mips directives
? Введите Info as
, перейдите к главе Machine Dependent Features
, затем перейдите к подразделу MIPS-Dependent
. Но, тем не менее, вы не можете найти ни директивы .ent
, ни .frame .fmask .mask
. Это потому, что info as
не является руководством по сборке MIPS и не может быть настолько полным.
Кстати, nasm
, ассемблер, с которым знакомы многие программисты, имеет свои собственные директивы и синтаксис (стиль Intel), которые отличаются от GNU as
(полученных из древнего стиля AT & T). Аналогичным образом, разные языки ассемблера могут иметь свои собственные уникальные директивы (но не синтаксис), поддерживаемые ассемблерами, которые могут их также собирать. Вот почему два источника директив могут отображаться в файле сборки. Теперь ассемблер GNU as
может даже поддерживать синтаксис Intel. Более того, существуют инструменты для перевода между AT & T и синтаксисом Intel. Однако вы должны помнить, что директивы отличаются от синтаксиса. Честно говоря, я тоже запутался в этом.