第二章AT&T汇编语言提纲AT&内嵌汇编AT&T汇编语言在Linux中,()为扩展名的文件是包含汇编语言代码的文件。在Linux下有两种方式对AT&T汇编进行编译链接,一种是使用汇编程序GAS和连接程序LD,AT&T汇编的编译方式使用汇编程序GAS和连接程序LD第一步:-:--&:.ascii"helloworld\n".:movl$4,%eaxmovl$1,%ebxmovl$output,%ecxmovl$12,%edxint$0x80movl$1,%eaxint$0x80这段程序在linux上编译执行后会输出“helloworld”。可以看到AT&T与Intel汇编在格式上有着显著的不同AT&T中的节(Section)在AT&T的语法中,,当你编写汇编语言程序时,至少需要有以下三种节:.data节这种节包含程序已初始化的数据,也就是说,。需要指出的是,该节是只读节AT&T中的节(Section).bss节这个节包含程序还未初始化的数据,也就是说,包含没有初值的那些变量。,.bss节在编译后不占用磁盘的空间,这样编译、连接生成的代码的尺寸会比较小。尽管在磁盘上不占空间,&:.ascii"helloworld\n".:movl$4,%eaxmovl$1,%ebxmovl$output,%ecxmovl$12,%edxint$0x80movl$3,%eaxmovl$1,%ebxmovl$sentence,%ecxmovl$30,%edxint$0x80movl$4,%eaxmovl$30,%edxint$0x80movl$1,%eaxint$:.fill30程序的功能是首先打印“helloworld”,然后让用户输入字符然后将输入的字符打印出来AT&:.ascii “string”….ascii表示零个或多个(用逗号隔开)字符串,并把每个字符串(结尾不自动加“\0”字符)中的字符放在连续的地址单元。“\0”:.fillrepeat,size,value含义是反复拷贝size个字节,重复repeat次,其中size和value是可选的,默认值分别为1和0AT&:.(ld)能够看到symbol。如果你的局部程序中定义了symbol,那么,:.reptcount……..
AT 来自淘豆网www.taodocs.com转载请标明出处.