8086汇编三——反汇编03:switch case 和 if else 比较


一、if else

8086汇编三——反汇编03:switch case 和 if else 比较_第1张图片
if else 代码
8086汇编三——反汇编03:switch case 和 if else 比较_第2张图片
if else 汇编

if else 就是比较。

二、switch case

以空间换时间,来提高效率。
若空间相差太大(即case后面的值相差太大),就不再用空间换时间,这时跟if else差不多了。

8086汇编三——反汇编03:switch case 和 if else 比较_第3张图片
a=4
8086汇编三——反汇编03:switch case 和 if else 比较_第4张图片
8086汇编三——反汇编03:switch case 和 if else 比较_第5张图片

如果a=4,直接跳到case 4部分;
如果a的值不在范围内,直接就跳到17行(jne 0x100000f20)执行default部分。

switch其实是空间换时间,研究下20行到22行

8086汇编三——反汇编03:switch case 和 if else 比较_第6张图片
image.png
以上都是连续的数字,那么针对不连续的数字情况:
8086汇编三——反汇编03:switch case 和 if else 比较_第7张图片
case值不连续且相差很大
8086汇编三——反汇编03:switch case 和 if else 比较_第8张图片

当case后面的值相差太大的时候,不会再牺牲内存空间来换时间,这个时候跟if else差不多了。

你可能感兴趣的:(8086汇编三——反汇编03:switch case 和 if else 比较)