Gcc gnu汇编程序指令的文档
我现在正在努力学习mips汇编。为此,我写了一个非常简单的c程序Gcc gnu汇编程序指令的文档,gcc,assembly,mips,directive,gnu-assembler,Gcc,Assembly,Mips,Directive,Gnu Assembler,我现在正在努力学习mips汇编。为此,我写了一个非常简单的c程序 int main(){} …并在mips计算机上使用-S选项对gcc进行编译以生成汇编代码。以下是主函数的开头: .ent main main: .frame $fp,8,$31 .mask 0x40000000,-8 .fmask 0x00000000,0 新界北总区 主要内容: .帧$fp,8,$31 .掩码0x40000000,-8 .fmask 0x00000000,0 然后我试图通过查看来
int main(){}
…并在mips计算机上使用-S选项对gcc进行编译以生成汇编代码。以下是主函数的开头:
.ent main
main:
.frame $fp,8,$31
.mask 0x40000000,-8
.fmask 0x00000000,0
新界北总区
主要内容:
.帧$fp,8,$31
.掩码0x40000000,-8
.fmask 0x00000000,0
然后我试图通过查看来了解这一切意味着什么,但我在那里找不到任何这些指令。那他们是什么意思?我在哪里可以找到更多信息?我知道我的答案有点晚了。迟做总比不做好 编译程序集文件时,代码中可能会显示两种指令
.ent
实际上是一个mips汇编
指令.ent.frame.fmask.mask
指令:它们都是mips汇编指令。或者您可以谷歌MIPS汇编语言程序员指南
。导航到第8章,伪操作码
,您将获得所需的一切
您可能想知道GNU as
如何支持mips指令
?键入信息作为
,导航到章节机器相关功能
,然后导航到子章节MIPS相关
。但仍然无法在此处找到.ent
指令,也无法找到.frame.fmask.mask
。这是因为info as
不是mips汇编指南,也不能太全面
顺便说一句,
nasm
,许多程序员都熟悉的汇编程序,有自己的指令和语法(英特尔风格),不同于GNU as
(源自古老的AT&T风格)。类似地,不同的汇编语言可能有自己独特的指令(但不是语法),这些指令也可以由汇编程序支持。这就是为什么程序集文件中可能会出现两个指令源。现在,GNU as汇编程序甚至可以支持英特尔语法。此外,还有一些工具可以在AT&T和Intel语法之间进行转换。但是,您应该记住,指令与语法不同。坦率地说,我对此也感到困惑。也许您的gcc副本配置为使用其他汇编程序(而不是gas)?上面写的是什么“gcc-c-Wa,-version-xc-.ent
、.frame
等是什么会很好。感谢您的回答