【x86汇编】第四章:程序设计的基本方法

文章目录顺序结构分支结构转移指令条件转移简单条件转移无符号数有符号数无条件转移循环结构循环程序的结构循环控制方法计数控制法一般循环转移指令等于或0循环转移指令不等于或0循环转移指令跳转指令条件控制法子程序设计子程序的概念子程序的定义子程序的调用与返回调用指令CALL段内直接调用段间直接调用段内间接调用段间间接调用返回指令RET子程序现场保护方法传递参数的方式寄存器法约定单元法堆栈法程序设计注意事项...
摘要由CSDN通过智能技术生成

顺序结构

  • 程序无分支、无循环、无转移, 以直线方式一条指令接着一条指令顺序执行

分支结构

  • 运行时, 让机器根据不同情况自动做出判断, 有选择地执行相应的处理程序
  • 一般根据标志寄存器的某些位作为判断条件

转移指令

  • 转移指令可以改变程序的执行顺序(也就是改变CS:EIP/IP指针的值)
  • 转移指令不改变标志寄存器的值

条件转移

调用格式:操作符 标号

如果满足条件,则转移,否则继续执行
分支条件转移特别需要注意以下几点

  • 选择合适的转移指令,注意有无符号的区别
  • 为每个分支安排好出口
  • 把公共部分尽量放到公共段中

简单条件转移

指令名称 助记符 转移条件 功能说明
相等/等于0转 JE/JZ ZF=1 前次操作结果是否相等或等于0
不相等/不等于0转 JNE/JNZ ZF=0 前次操作结果是否不相等或不等于0
为负转 JS SF=1 前次操作结果是否为负
为正转 JNS SF=0 前次操作结果是否为正
溢出转 JO OF=1 前次操作结果是否溢出
未溢出转 JNO OF=0 前次操作结果是否未溢出
进位位为1转 JC CF=1 前次操作结果是否有进位或借位
进位位为0转 JNC CF=0 前次操作结果是否无进位或借位
偶转移 JP/JPE PF=1 前次操作结果中1的个数是否为偶数
奇转移 JNP/JPO PF=0 前次操作结果中1的个数是否为奇数

无符号数

无符号数的运算结果有三种情况

  • 结果为正:大数-小数,结果为正,无溢出无进位
  • 结果为0
  • 结果为负:小数-大数,结果为负,高位变成1,产生进位

JA / JNBE

  • 大于(above)转移,比较两个无符号数ÿ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值