- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AT
第二章 ATT汇编语言 提纲 ATT汇编语言 GCC内嵌汇编 ATT汇编语言 在Linux中,以.S(或.s)为扩展名的文件是包含汇编语言代码的文件。 在Linux下有两种方式对ATT汇编进行编译链接,一种是使用汇编程序GAS和连接程序LD,一种是使用GCC ATT汇编的编译方式 使用汇编程序GAS和连接程序LD 第一步: as sourcecode.s -o objfile.o 将汇编源文件编译成目标文件 第二步:ld objfile.o -o execode 将目标文件链接成可执行文件 使用GCC gcc -o execode sourcecode.S 使用GCC编译一步就可以编译成可执行文件 ATT汇编示例 .data output: .ascii hello world\n .text .globl _start _start: movl $4, %eax movl $1, %ebx movl $output, %ecx movl $12, %edx int $0x80 movl $1, %eax int $0x80 ATT中的节(Section) 在ATT的语法中,一个节由.section关键词来标识,当你编写汇编语言程序时,至少需要有以下三种节: .data节 这种节包含程序已初始化的数据,也就是说,包含具有初值的那些变量 .text节 这个节包含程序的代码。需要指出的是,该节是只读节 ATT中的节(Section) .bss节 这个节包含程序还未初始化的数据,也就是说,包含没有初值的那些变量。当操作系统装入这个程序时将把这些变量都置为0 使用.bss比使用.data的优势在于,.bss节在编译后不占用磁盘的空间,这样编译、连接生成的代码的尺寸会比较小。 尽管在磁盘上不占空间,但是在可执行文件被读入内存后系统还是会为.bss节分配内存 拥有三个节的ATT汇编程序示例 .data output: .ascii hello world\n .text .globl _start _start: movl $4, %eax movl $1, %ebx movl $output, %ecx movl $12, %edx int $0x80 movl $3, %eax movl $1, %ebx ATT汇编语言常见指令 .ascii 语法:.ascii “string” …. ascii 表示零个或多个(用逗号隔开)字符串,并把每个字符串(结尾不自动加“\0”字符)中的字符放在连续的地址单元。于此类似的 .asciz指令定义的字符串会在结尾处自动加 “\0”字符 .fill 语法:.fill repeat , size , value 含义是反复拷贝size个字节,重复repeat次 ,其中size和value是可选的,默认值分别为1和0 ATT汇编语言常见指令 .globl 语法:.globl symbol .globl使得连接程序(ld)能够看到symbol。如果你的局部程序中定义了symbol,那么,与这个局部程序连接的其他局部程序也能存取symbol .rept endr 语法:.rept count ……. .endr 把.rept指令与.endr指令之间的行重复count次 ATT汇编语言常见指令 .space 语法:.space size , fill 这个指令保留size个字节的空间,每个字节的值为fill .byte/.word/.long 语法:.byte/.word/.long expressions 预留1个字节/字/双字,并将这个字节的内容赋值为expression,若是用逗号隔开的多个expression,则为预留多个这样的字节/字/双字,并将它们的内容依次赋值。 .set 设定常数,就好像C程序中的#define的作用一样 ATT 与Intel的汇编语言语法区别 ATT和Intel汇编语言的语法区别主要体现在操作数前缀、赋值方向、间接寻址语法、操作码的后缀上 操作数前缀 ATT 与Intel的汇编语言语法区别 源/目的操作数顺序 ATT 与Inte
您可能关注的文档
最近下载
- XGZ系列刮板输送机图册.pdf
- 第10课《 再塑生命的人》课件(共22张ppt)部编版语文七年级上册.pptx VIP
- 近5年上海市高考语文真题之书序、游记类文言文阅读汇编.docx VIP
- 00708装饰材料与构造-全国自考-2021年4月高等教育自学考试真题(试卷).pdf VIP
- XGZ系列铸石刮板输送机.doc
- 小学篮球原地运球、行进间运球教案.doc
- 中国林业研究院806有机化学考研真题试题2020年.pdf VIP
- 中国林业研究院806有机化学2019考研真题试题.pdf VIP
- 2024年初级咖啡师技能鉴定考试题库大全-上(单选题汇总).docx
- 2024-2030年中国氦(液氦和气态氦)行业市场发展趋势与前景展望战略分析报告.docx
文档评论(0)