【发布时间】:2020-01-14 18:35:37
【问题描述】:
如何在 Assembly 中使用多个 if-else 语句或 C/C++ 中的 switch 运算符?
C 中的类似内容:
if ( number == 2 )
printf("TWO");
else if ( number == 3 )
printf("THREE");
else if ( number == 4 )
printf("FOUR");
或者使用开关:
switch (i)
{
case 2:
printf("TWO"); break;
case 3:
printf("THREE"); break;
case 4:
printf("FOUR"); break;
}
谢谢。
【问题讨论】:
-
为什么不创建一个包含语句的 C 程序,构建它,然后查看生成的汇编代码? Here's a good online resource 去做。
-
通常,您使用条件跳转来适当地转移控制。具体细节取决于您想到的特定架构。
-
这两段代码不等价,
switch已经失败,例如对于 i==2,所有打印都将被执行。 -
你知道如何做一个 if-then 吗?如果没有,那么先学习。仅此一项就有很多细节(例如反转条件),并且可以推断到其他细节。
-
在某些情况下,switch 语句可以更有效地作为跳转表来完成。 with switch 变量的值将作为跳转表的索引。
标签: if-statement assembly switch-statement