AT&T指令集 |
|
|
|
GAS中每个操作都是有一个字符的后缀,表明操作数的大小。 注意:GAL使用后缀“l”同时表示4字节整数和8字节双精度浮点数,这不会产生歧义因为浮点数使用的是完全不同的指令和寄存器。
操作数格式: 注:M[xx]表示在存储器中xx地址的值,R[xx]表示寄存器xx的值,这种表示方法将寄存器、内存都看出一个大数组的形式。
数据传送指令: 注:均假设栈往低地址扩展。
算数和逻辑操作地址:
特殊算术操作: 注:64位数通常存储为,高32位放在edx,低32位放在eax。
条件码: 条件码寄存器描述了最近的算数或逻辑操作的属性。 CF:进位标志,最高位产生了进位,可用于检查无符号数溢出。 OF:溢出标志,二进制补码溢出——正溢出或负溢出。 ZF:零标志,结果为0。 SF:符号标志,操作结果为负。
比较指令:
访问条件码指令:
跳转指令:
转移控制指令:(函数调用): C声明GAS后缀大小(字节)charb1shortw2(unsigned) int / long / char* l4floats4doublel8long doublet10/12
|