步入主题
接着昨天来吧,心态不好的昨天度过了后,今天继续更新吧!昨天大概说到了溢出的地方
小黄书更新
-
进位
无符号超出存储范围叫做进位,因为没有符号位,不会破坏数据,而多出的1位数据在进位标志为CF保存,数据产生了进位,只是进位后的1位数据1不在自身的存储空间,而在标志的CF位的位置,通过观察CF位来判断无符号的进位情况
-
溢出
有符号数超过存储的范围叫做溢出,因为数据进位,从而破坏了有符号的最高位——符号位,只有有符号数才有符号位,针对有符号数,可以查看溢出标志位OF,从而检查数据是否溢出
自增和自减
vc6.0 使用 ++ – 来实现自增自减的操作,一般形式分为两种,一种为自增运算符在语句块之后,另一种是自增运算符在语句块之前,如果在之前,先执行自增自减,在执行语句块,如果在之后,先执行语句块在自增自减,直接看汇编代码吧!
1 | //自增自减代码 |
上面的汇编可以看出来,他们会把操作分离,nVarTwo = 5 + (nVarOne++) 会分解 nVarTwo = 5 + nVarOne,以及nVarOne +=1,同理,++在前的时候,两个算术表达式替换位置即可
关系运算和逻辑运算
关系运算用于判断两者之间的关系,大部分什么我就不说了,这里我只能说与非门牛逼,万能运算
- 或运算:比较运算符 || 有一个值为真,就是真,如果是假,则返回假
- 与运算:比较运算符&& 如果有一个为假就是假,都为真就是真
- 非运算:改变运算符!真就是假,假就是真
关系运算和条件跳转的对应
指令助记符 | 检查标记位 | 说明 |
---|---|---|
JZ | ZF == 1 | 等于0则跳转 |
JE | ZF == 1 | 相等则跳转 |
JNZ | ZF == 0 | 不等于0则跳转 |
JNE | ZF == 0 | 不相等则跳转 |
JS | SF == 1 | 符号为负则跳转 |
JNS | SF == 0 | 符号为正则跳转 |
JP/JPE | PF == 1 | "1"的个数为偶数则跳转 |
JNP/JPO | PF == 0 | "1"的个数为奇数则跳转 |
JO | OF == 1 | 溢出则跳转 |
JNO | OF == 0 | 无溢出则跳转 |
JC | CF == 1 | 进位则跳转 |
JB | CF == 1 | 小于则跳转 |
JNAE | CF == 1 | 不大于等于则跳转 |
JNC | CF == 0 | 无进位则跳转 |
JNB | CF == 0 | 不小于则跳转 |
JAE | CF == 0 | 大于则跳转 |
好的 吃饭喝酒去了- -!鸽了!😂
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.