diff --git a/ch3-asm/ch3-04-func.md b/ch3-asm/ch3-04-func.md index a7c3071..8431ba2 100644 --- a/ch3-asm/ch3-04-func.md +++ b/ch3-asm/ch3-04-func.md @@ -149,7 +149,7 @@ func SomeFunc(FP *SomeFunc_args_and_returns) { 在X86平台,函数的调用栈是从高地址向低地址增长的,因此伪SP寄存器对应栈帧的底部其实是对应更大的地址。当前栈的顶部对应真实存在的SP寄存器,对应当前函数栈帧的栈顶,对应更小的地址。如果整个内容是用Memory数组表示,那么`Memory[0(SP):end-0(SP)]`就是对应当前栈帧的切片,其中开始位置是真SP,结尾部分是伪SP。真SP一般用于表示调用其它函数时的参数和返回值,真SP对应内存较低的地址,所以被访问变量的偏移量是正数;而伪SP对应高地址,对应的局部变量的偏移量都是负数。 -我们现在Go语言定义一个Foo函数,并在函数内部定义几个局部变量: +我们现在用Go语言定义一个Foo函数,并在函数内部定义几个局部变量: ```go func Foo() { var a, b, c int }