X86-64指令集 控制与栈帧过程 读书笔记

下周不出意外的话 计算机系统2课程要做 Attack Lab 也就是攻击实验,为此提前复习并且整理一下可能用到的知识,即指令的控制与流程结构

控制

条件码

程序的运行离不开if else 等选择控制语句,那么这些选择语句都是怎么工作的?

答案是条件码,控制语句只认条件码,根据条件码来决定这个if执行与否,而相关的操作可以改变条件码。比如 最常用的 if(a==0),这里判断的是 “零条件码”,那么有那些条件码呢?

值得注意到是:与LC-3指令集一样,运算操作的结果,能够改变条件码,下面给出条件码的具体表格

条件码名 解释
CF Carry Flag 即进位标识(只用最高位产生进位才CF=1,所以可检测无符号数的溢出)
ZF Zero Flag 即零标识(结果为0时ZF=1)
SF Signed Flag 即符号标识(结果为负数时SF=1)
OF Overflow Flag 即溢出标识(正溢出或者负溢出时OF=1)

改变条件码的指令

有一些操作可以改变条件码,而这是选择结构的必然操作

cmp

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值