Я знаю, что мой ответ немного запоздал. Лучше поздно, чем никогда.
Когда вы компилируете файл сборки, в коде могут отображаться два типа директив.
Один из видов - это директивы, поддерживаемые вашим ассемблером, в вашей ситуации это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. Однако вы должны помнить, что директивы отличаются от синтаксиса. Честно говоря, меня это тоже смущает.
person
Han XIAO
schedule
13.03.2018
.ent,.frameи т. Д. Находятся в отдельных вопросах. - person Ciro Santilli 新疆再教育营六四事件ۍ   schedule 20.06.2015