8086汇编二——寄存器和局部变量保护

一个函数只调用一个函数的情况:

8086汇编二——寄存器和局部变量保护_第1张图片
一个函数被调用的内存结构图
8086汇编二——寄存器和局部变量保护_第2张图片
pop bp

bp用于内部取值,及保护sp。

操纵bp,要么操作局部变量(bp减,因为新数据的地址是越来越小的),要么操作参数(bp加)。

业务逻辑里面都是在操纵bp。


第二种情况:寄存器保护,函数中用到寄存器,且里面有以前的值:

8086汇编二——寄存器和局部变量保护_第3张图片
为什么要恢复寄存器中的值
8086汇编二——寄存器和局部变量保护_第4张图片

为什么先保护bp和sp,分配完局部变量控件之后,才保护寄存器?
——因为为了方便使用bp操纵局部变量区域。若是先保护寄存器,使用bp取值的时候还要跨过若干个寄存器,用了多少个寄存器是不确定的。


对局部变量区域的处理,填充CC:

8086汇编二——寄存器和局部变量保护_第5张图片


总结

8086汇编二——寄存器和局部变量保护_第6张图片
image.png
8086汇编二——寄存器和局部变量保护_第7张图片
image.png

你可能感兴趣的:(8086汇编二——寄存器和局部变量保护)