AT&T指令集

AT&T指令集

ID:38267690

大小:211.89 KB

页数:4页

时间:2019-05-25

AT&T指令集_第1页
AT&T指令集_第2页
AT&T指令集_第3页
AT&T指令集_第4页
资源描述:

《AT&T指令集》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、AT&T指令集GAS中每个操作都是有一个字符的后缀,表明操作数的大小。C声明GAS后缀大小(字节)charb1shortw2(unsigned)int/longl4/char*floats4doublel8longdoublet10/12注意:GAL使用后缀―l‖同时表示4字节整数和8字节双精度浮点数,这不会产生歧义因为浮点数使用的是完全不同的指令和寄存器。操作数格式:格式操作数值名称样例(GAS=C语言)$ImmImm立即数寻址$1=1EaR[Ea]寄存器寻址%eax=eaxImmM[Imm]绝对寻址0x104=*0x104(Ea)M[R

2、[Ea]]间接寻址(%eax)=*eaxImm(Ea)M[Imm+R[Ea]](基址+偏移4(%eax)=量)寻址*(4+eax)(Ea,Eb)M[R[Ea]+R[Eb]]变址(%eax,%ebx)=*(eax+ebx)Imm(Ea,Eb)M[Imm+R[Ea]+R[Eb]]寻址9(%eax,%ebx)=*(9+eax+ebx)(,Ea,s)M[R[Ea]*s]伸缩化变址(,%eax,4)=寻址*(eax*4)Imm(,Ea,s)M[Imm+R[Ea]*s]伸缩化变址0xfc(,%eax,4)=寻址*(0xfc+eax*4)(Ea,Eb,s

3、)M(R[Ea]+R[Eb]*s)伸缩化变址(%eax,%ebx,4)=寻址*(eax+ebx*4)Imm(Ea,Eb,s)M(Imm+R[Ea]+R[Eb]*s)伸缩化变址8(%eax,%ebx,4)寻址=*(8+eax+ebx*4)注:M[xx]表示在存储器中xx地址的值,R[xx]表示寄存器xx的值,这种表示方法将寄存器、内存都看出一个大数组的形式。数据传送指令:指令效果描述movlS,DD<--S传双字movwS,DD<--S传字movbS,DD<--S传字节movsblS,DD<--符号扩展S符号位填充(字节->双字)movzbl

4、S,DD<--零扩展S零填充(字节->双字)pushlSR[%esp]<--R[%esp]–4;压栈M[R[%esp]]<--SpoplDD<--M[R[%esp]];出栈R[%esp]<--R[%esp]+4;注:均假设栈往低地址扩展。算数和逻辑操作地址:指令效果描述lealS,DD=&Smovl地版,S地址入D,D仅能是寄存器inclDD++加1declDD--减1neglDD=-D取负notlDD=~D取反addlS,DD=D+S加sublS,DD=D–S减imullS,DD=D*S乘xorlS,DD=D^S异或orlS,DD=D

5、S

6、或andlS,DD=D&S与sallk,DD=D<>k算数右移shrlk,DD=D>>k逻辑右移特殊算术操作:指令效果描述imullSR[%edx]:R[%eax]=S*R[%eax]无符号64位乘mullSR[%edx]:R[%eax]=S*R[%eax]有符号64位乘cltdSR[%edx]:R[%eax]=符号位扩展转换为4字节R[%eax]idivlSR[%edx]=R[%edx]:R[%eax]%S;有符号除法,保存余数和R[%eax]=R[%edx]:R[

7、%eax]/S;商divlSR[%edx]=R[%edx]:R[%eax]%S;无符号除法,保存余数和R[%eax]=R[%edx]:R[%eax]/S;商注:64位数通常存储为,高32位放在edx,低32位放在eax。条件码:条件码寄存器描述了最近的算数或逻辑操作的属性。CF:进位标志,最高位产生了进位,可用于检查无符号数溢出。OF:溢出标志,二进制补码溢出——正溢出或负溢出。ZF:零标志,结果为0。SF:符号标志,操作结果为负。比较指令:指令基于描述cmpbS2,S1S1–S2比较字节,差关系testbS2,S1S1&S2测试字节,与关

8、系cmpwS2,S1S1–S2比较字,差关系testwS2,S1S1&S2测试字,与关系cmplS2,S1S1–S2比较双字,差关系testlS2,S1S1&S2测试双字,与关系访问条件码指令:指令同义名效果设置条件seteDsetzD=ZF相等/零setneDsetnzD=~ZF不等/非零setsDD=SF负数setnsDD=~SF非负数setgDsetnleD=~(SF^OF)&ZF大于(有符号>)setgeDsetnlD=~(SF^OF)小于等于(有符号>=)setlDsetngeD=SF^OF小于(有符号<)setleDsetngD

9、=(SF^OF)

10、ZF小于等于(有符号<=)setaDsetnbeD=~CF&~ZF超过(无符号>)setaeDsetnbD=~CF超过或等于(无符号>=)setbDsetnae

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。