深入理解计算机系统
mayl1209
这个作者很懒,什么都没留下…
展开
-
深入理解计算机系统 3.7~3.8
过程的机器级实现需要处理控制传递、数据传递、内存管理等问题。这一切通过运行时栈实现。 栈的分配和释放通过栈指针%rsp的移动来实现。栈向低地址方向增长。压栈、弹栈对应的汇编语言指令分别是push和pop。 过程P调用过程Q时,将调用Q的下一条指令地址压栈,将PC修改为Q的起始地址。Q开始执行时,为自身在栈上分配空间,称为Q的栈帧。Q返回时,栈帧被释放,P从栈顶记录的返回地址继续执行。 栈帧由...原创 2018-12-17 20:36:07 · 396 阅读 · 0 评论 -
深入理解计算机系统 3.9~3.10
C语言的结构体和联合(union)可以把一些不同类型的字段封装成一个整体,使用语法也基本相同。区别在于union是所有字段共享一块内存空间,对不同字段的调用是对内存块的值做不同类型的解释。 struct的字段要遵守对齐法则,规则是字段的起始地址必须是字段类型长度的倍数。struct本身的起始地址必须是最大字段类型长度的倍数。 union所有字段起始地址都是union本身的地址,union的长度...原创 2018-12-18 22:14:49 · 392 阅读 · 0 评论