<s>C_nx 语言_n 程序_n 中_f ，_w 如何_r 理解_v 栈_Ng 是_v 由_p 编译器_n 管理_v 的_u ？_w</s>
<s>引用_v 6_m 楼_n u014627144_nx 的_u 回复_vn :_w [_w quote_nx =_w 引用_v 5_m 楼_n lm_whales_nx 的_u 回复_vn :_w ]_w 你_r 说_v 得_u 挺_d 能_v 解开_v 我_r 这_r 个_q 疑惑_vn 的_u ，_w 请问_v 下_q 哪里_r 可以_v 查看_v 或者_c 验证_v 下_q 呢_y ~_w ~_w [_w /_w quote_nx ]_w 要_v 想_v 彻底_ad 理解_v 这些_r 东西_n ，_w 编译_v 原理_n ，_w 汇编_vn 语言_n ，_w 以及_c 计算机_n 组成_vn 与_c 结构_n ，_w 这_r 方面_n 的_u 知识_n 都_d 是_v 需要_v 了解_v 的_u X86_nx 堆栈_n ，_w 函数_n 调用_vn ，_w 数据_n 暂存_vn ，_w 以及_c 函数_n 局部_n 自动_b 变量_n ，_w 函数_n 参数_n ，_w 都_d 在_d 使用_v ._w</s><s>具体_ad 到_v VC_nx 上_f ，_w 函数_n 局部_n 自动_b 变量_n ，_w 函数_n 参数_n ，_w 用_p 一_m 个_q 固定_a 的_u 常_Ag 量_n ，_w 表示_v 函数_n 相对_b 栈_n 帧_n 的_u 相对_b 偏移_vn 量_n 。_w</s><s>具体_ad 读_v 写_v ，_w 一般_ad 是_v 通过_p 寄存器_n 间接_ad 寻址_v 等_u 方式_n 读_v 写_v ，_w 大都_d 是_v 用_p ebp_nx 读_v 写_v ，_w 有时候_d 优化_v 后_f 的_u 代码_n ，_w 可能_v 会_v 用_p esp_nx 读_v 写_v 。_w</s><s>另外_c ，_w 32_m Bits_nx 代码_n ，_w 一般_ad 看_v 不_d 到_v 设置_v 堆栈_n 的_u 操作_vn ，_w 栈_Ng 的_u 位置_n 通过_p 段_Ng 寄存_vn 器_n SS_nx 确定_v ，_w SS_nx 一般_ad 不_d 用_v 设置_v ，_w 所以_c 堆栈_n 段_Ng 地址_n ，_w 以及_c 堆栈_n 基地_n 址_n ，_w 这些_r 在_p 汇编_vn 代码_n 里_f 是_v 看_v 不_d 到_v 的_u 。_w</s><s>能_v 看到_v 的_u 堆栈_n 操作_vn ，_w 一般_ad 都_d 是_v 用_v 相应_vn 指令_n ，_w 比较_d 明显_a 的_u 就_d 是_v 对_p esp_nx ,_w ebp_nx 这_r 两_m 个_q 寄存器_n 的_u 使用_vn 。_w</s>
