I know my answer is kind of late. Better late than never.
When you compile an assembly file, two kinds of directives may show up in the code.
One kind is the directives supported by your assembler, in your situation, it isGNU as
directives.
The other kind depends on you assembly language, and because you are apparently using mips assembly here, the .ent
is actually a mips assembly
directive.
Here is the guide where you can find .ent .frame .fmask .mask
directives: they are all mips assembly directives. Or you can just Google MIPS Assembly Language Programmer’s Guide
. Navigate to chapter 8, Pseudo Op-Codes
and you will get all you need.
You may wonder how GNU as
can support mips directives
? Type Info as
, navigate to chapter Machine Dependent Features
, then navigate to subchapter MIPS-Dependent
. But still, you can't find .ent
directive here, nor .frame .fmask .mask
. That is because info as
is not a mips assembly guide and can not be that much comprehensive.
By the way, nasm
, the assembler which many programmer are familiar with, has its own directives and syntax (Intel style) which are different from those of GNU as
(derived from ancient AT&T style). Similarly, different assembly language may have their own unique directives (but not syntax) supported by assemblers that can assemble them too. That's why two source of directives may show up in an assembly file. Now, the GNU as
assembler can even support Intel syntax. And furthermore, there are tools to translate between AT&T and Intel syntax. However, you should remember that directives are different from syntax. Frankly speaking, I am confused about this too.
.ent
,.frame
, etc. are in separate questions would be great though. – Muffin