Case语句
要点
- MASM不存在case结构的汇编指令,可以使用嵌套的IF结构来替代。
- 一旦程序中出现太多的嵌套IF语句,最终的结果是代码变得非常难以阅读和维护
- 当Switch后面的变量值等于下面某一个常量时,程序控制流转到相应的CASE语句。
- ==默认的CASE语句可以通过无条件跳转来实现==。 不要忘记这个无条件跳转。
- 正如C语言每个case后面有一个break一样,使用无条件跳转语句将程序的控制流跳转到case结构的结尾处。
- 最后一个case语句或default语句不要break一样,汇编里页不需要跳转。
例子
SWITCH01:
cmp w,1
je case11;
cmp w,2
je case12
cmp w,3
je case12
jmp DEFAULT01
CASE11:
inc x
jmp ENDSWITCH01
CASE12:
inc y
jmp ENDSWITCH01
DEFAULT01:
inc z
ENDSWITCH01:
练习:请使用MASM汇编指令实现
if(a>b){
a= a-1;
}
else if(b>=c){
b = b*2;
}
else if(c>d){
c = c+ d;
}
else{
d = d/2;
}