AT&T汇编语法主要包含如下特点。
1)程序源文件一般以“.s”作为后缀文件名,以“#”开头表示注释。
2)寄存器名以“%”作为前缀。例如,下面的代码表示将eax寄存器的内容复制到ebx中: movl %eax,%ebx
3)立即操作数以“$”前缀表示。例如,下面的代码表示将1复制到eax内存地址中(eax用括号包围,表示操作数的内存位置,而不是操作数本身): movl $1, (%eax)
4)目标操作数在源操作数的右边。例如,下面的代码表示将寄存器eax的内容复制到ebx中: movl %eax,%ebx
5)操作数的字长由操作符的最后一个字母决定,后缀“b”、“w”、“l”分别表示操作数为字节(byte,8 比特)、字(word,16 比特)和长字(long,32比特)。
6)远程转移指令和远程子调用指令的操作码分别为ljump和lcall。
资料来源:《C指针原理揭秘:基于底层实现机制》,文章链接:https://developer.aliyun.com/article/726057
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。