GNU assembler

有时候需要读汇编代码,甚至写一点汇编代码。

汇编代码涉及两方面的知识,一方面是指令格式,另一刚面是汇编语言语法。

使用GNU编译工具链的汇编代码语法是GNU assembler规定的,那么最权威的资料就是gas的手册。

 

gas是binutils的一部分。实际上gas不是gcc的一部分,但是,编译gcc会调用gas。

从gnu网站上能够找到一个自由软件的列表:http://directory.fsf.org/wiki/GNU

从这个列表里面能找到binutils的连接:https://www.gnu.org/software/binutils/

从这个binutils主页上能够找到binutils的文档:https://sourceware.org/binutils/docs-2.25/

binutils的文档中包含gas的文档:https://sourceware.org/binutils/docs-2.25/as/index.html

 

下面列出一些阅读gnu汇编代码的基础知识,有了这些知识就可以开始读gnu汇编代码了。

1. @后面的内容为注释。

2. 任何以冒号结尾的标识符都认为是一个标签,而不一定要在行首。

3. ascii "<string>" 在汇编中定义字符串并为之分配存储空间。

4. asciz 与ascii类似,但不分配存储空间。

5. .byte <byte1> {,<byte2>} ...   定义一个或多个字节并分配存储空间。

6. .code <number of bits>  设定指令宽度。

7.

.if <absolute expression>

.else

.enif

8. .end 汇编文件结束标识,常省略不用。

9. .endm宏结束标识。

10. .exitm跳出宏。

11. .macro <name> {<arg1>} {,<arg2>, ... , <argn>}  定义一段名为name的宏,必须有endm结尾。可以使用.exitm从中间跳出。在使用宏的参数时必须要这样使用\<arg>,家反斜杠。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值