当我试图反汇编我自己的 C 代码时,我陷入了一个不理解这个 Switch 语句是如何在汇编代码中实现的问题。任何人都可以帮忙弄清楚吗?这是开关组件。不明白为什么要使用这么多寄存器,加上最后一行写着“jmp dword ptr [eax 4+0A110E8h]”。这个 eax 4 是组装中的开关所必需的还是由拆卸器自己完成的?

我的 C 代码:
main() {
int a;
printf("Please enter a no between 1 and 5: ");
scanf("%d", & a);
switch (a) {
case 1:
printf("You chose One");
break;
case 2:
printf("You chose Two");
break;
case 3:
printf("You chose Three");
break;
case 4:
printf("You chose Four");
break;
case 5:
printf("You chose Five.");
break;
default:
printf("Invalid Choice. Enter a no between 1 and 5");
break;
}
}