- 2017-12-23 17:08
这里参考的是王爽老师的《汇编语言》第二版的第十一章 标志寄存器的内容。
11.9 检测比较结果的条件转移指令
其中常用的根据无符号数的比较结果进行转移的条件转移指令(部分内容)。
指令 | 含义 | 检测的相关标志位 |
---|---|---|
je | 等于则转移 | zf=1 |
jb | 小于则转移 | cf=1 |
ja | 高于则转移 | cf=0且zf=0 |
我们以if 中条件为==为例。如果(ah)=(bh),则(ah) =(ah)+(ah),否则(ah) = (ah) + (bh)。
cmp ah, bh #s1
je s #s2
add ah, bh #s3
jmp ok #s4
s:add ah, ah #s5
ok: : #s6
如果用c语言的if...else语句来看的话,s3为else括号内的语句。也就是说无论是走if还是else分支,都会有一次跳转。
区间问题
- 循环的次数统计
1.[a,b),次数为b - a
2.[a,b],次数为b - a + 1。特别情况:当a=1时,如果为[a,b],则结果为b