下周不出意外的话 计算机系统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) |
改变条件码的指令
有一些操作可以改变条件码,而这是选择结构的必然操作