选择和循环结构的机器级表示

  • if-else两种机器级表示

1
注意区分条件转移和无条件转移指令

  • switch-case机器级表示

2
此处机器级代码是先判断了a>17和a<10时的default情况,然后10到17引用了跳转表,跳转表在目标文件的只读节中,按4字节边界对齐
但对于范围较大的swith-case语句不适用

  • 循环结构的机器级表示

3

  • 循环与递归

4
5

过程体中没用到被调用过程保存寄存器。因而,该过程栈帧中仅需保留EBP,
即其栈帧仅占用4字节空间,若考虑栈帧按16B对齐,也仅用16字节,而递归
方式则用了16n字节,是n倍关系!每次递归调用都要执行16条指令,一共多
了n次过程调用,因而,递归方式比循环方式至少多执行16n条指令。
由此看出,为提高程序性能,能用非递归方式执行则最好用非递归方式。


参考:南大计算机系统基础(一)

猜你喜欢

转载自blog.csdn.net/weixin_61631200/article/details/127422774