免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 824 | 回复: 0
打印 上一主题 下一主题

GNU汇编总结3 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-29 15:03 |只看该作者 |倒序浏览

# 五,控制流程                                          
   
无条件跳转:
1, 跳转
     jmp    location 其中location为要跳转到的内存地址, 在汇编中为定义的标签
2,调用
     调用指令分为两个部分:
     1, 调用call address 跳转到指定位置
     2, 返回指令ret, 它没有参数紧跟在call指令后面的位置
   
     执行call指令时,它把EIP的值放到堆栈中, 然后修改EIP以指向被调用的函数地址, 当被调用
     函数完成后, 它从堆栈获取过去的EIP的值, 并把控制权返还给原始程序。
   
3,中断
     由硬件设备生成中断。 程序生成软件中断
     当一个程序产生中断调用时, 发出调用的程序暂停, 被调用的程序接替它运行, 指令指针被转移到
     被调用的函数地址, 当调用完成时使用中断返回指令可以返回调原始程序。
   
   
   
条件跳转:
条件跳转按照EFLAGS中的值来判断是否该跳转, 格式为:
jxx address, 其中xx是1-3个字符的条件代码, 取值如下:
a        大于时跳转
ae       大于等于
b        小于
be       小于等于
c        进位
cxz      如果CX寄存器为0
ecxz     如果ECS寄存器为0
e        相等
na       不大于
nae      不大于或者等于
nb       不小于
nbe      不小于或等于
nc       无进位
ne       不等于
g        大于(有符号)
ge       大于等于(有符号)
l        小于(有符号)
le       小于等于(有符号)
ng       不大于(有符号)
nge      不大于等于(有符号)
nl       不小于
nle      不小于等于
no       不溢出
np       不奇偶校验
ns       无符号
nz       非零
o        溢出
p        奇偶校验
pe       如果偶校验
po       如果奇校验
s        如果带符号
z        如果为零
条件跳转不支持分段内存模型下的远跳转, 如果在该模式下进行
程序设计必须使用程序逻辑确定条件是否存在, 然后实现无条件
跳转, 跳转前必须设置EFLAGS寄存器
# 六,数字                                          
IA-32平台中存储超过一字节的数都被存储为小尾数的形式但是把数字传递给寄存器时, 寄存器里面保存是按照大尾数
的形式存储
把无符号数转换成位数更大的值时, 必须确保所有的高位部分都被设置为零
把有符号数转换成位数更大的数时:
intel 提供了movsx指令它允许扩展带符号数并保留符号, 它与movzx相似, 但是它假设要传送的字节是带符号数形式
浮点数:
fld    指令用于把浮点数字传送入和传送出FPU寄存器, 格式:
fld source
其中source可以为32 64或者80位整数值
IA-32使用FLD指令用于把存储在内存中的单精度和双精度浮点值FPU寄存器堆栈中, 为了区分这两种长度GNU汇编器使用
FLDS加载单精度浮点数, FLDL加载双精度浮点数
类似FST用于获取FPU寄存器堆栈中顶部的值, 并且把这个值放到内存位置中, 对于单精度使用FSTS, 对于双精度使用FSTL


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/86876/showart_1947305.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP