计算机组成原理——第四章指令系统(下)

本是青灯不归客,却因浊酒恋红尘


4.3.4 选择语句的机器级表示

常见的选择结构语句有 if-then、if-then-else、case(或 switch)等。编译器通过条件码(标志位)设置指令和各类转移指令来实现程序中的选择结构语句。程序计数器PC通常被称为IP,
1)条件码(标志位)
除了整数寄存器,CPU还维护一组条件码(标志位)寄存器,它们描述了最近的算术或逻辑运算操作的属性。可以检测这些寄存器来执行条件分支指令,最常用的条件码如下:
CF:进(借)位标志。最近无符号整数加(减)运算后的进(借)位情况。有进(借)位时,CF= 1;否则CF = 0。
ZF:零标志。最近的操作的运算结果是否是0,若结果为0,则ZF=1。否则ZF=0。
SF:符号标志。最近的带符号数运算结果的符号,若为负,SF=1,否则SF=0。
OF:溢出标志。最近的带符号数运算结果是否溢出。若溢出 OF=1,否则OF=0。
可见,OF和SF对无符号数运算来说没有意义,而CF对带符号数运算来说没有意义。常见的算术逻辑运算指令(add、sub、imul、or、and、shl、inc、dec、not、sal等)会设置条件码。但有两类指令只设置条件码而不改变任何其他寄存器: cmp指令和 sub 指令的行为一样,test 指令与and指令的行为一样,但是它们只设置条件码,而不更新目的寄存器
jcondition条件转跳指令&

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值