42、深入理解AT&T指令助记符与C库随机数生成

深入理解AT&T指令助记符与C库随机数生成

1. 理解AT&T指令助记符

x86 CPU存在多套指令助记符,这常常令人困惑。指令助记符是人类记忆二进制位模式对CPU含义的方式,例如用 MOV BX,AX 代替 1000100111000011 (十六进制为 89C3h )。需要注意的是,助记符只是帮助人类记忆的工具,CPU本身并不识别。汇编器会将助记符转换为机器指令。

AT&T助记符的出现是为了让Unix更易于移植到不同的机器架构。如果你的目标是全面高效地掌握x86 CPU,使用Intel助记符编写代码会更好;而AT&T助记符在理解gcc编译器和标准C库时很有用。

2. AT&T助记符约定

当gcc将C源代码文件编译为机器代码时,实际上是先将C源代码转换为使用AT&T助记符的汇编语言源代码。gcc编译器接收 .c 源代码文件作为输入,输出 .s 汇编源文件,然后将其交给GNU汇编器 gas 进行汇编。

以下是AT&T助记符的一些通用规则:
- 大小写 :AT&T助记符和寄存器名始终为小写,这遵循了Unix区分大小写的约定。Intel(以及NASM)建议使用大写,但也接受小写,而AT&T要求使用小写。
- 寄存器名前缀 :寄存器名前始终带有百分号 % ,例如Intel

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值