# 3.10 在机器级程序中将控制与数据结合起来

到目前为止,我们已经分别讨论机器级代码如何实现程序的控制部分和如何实现不同的数据结构。在本节中,我们会看看数据和控制如何交互。首先,深入审视一下指针,它是 C 编程语言中最重要的概念之一,但是许多程序员对它的理解都非常浅显。我们复习符号调试器 GDB 的使用,用它仔细检查机器级程序的详细运行。接下来,看看理解机器级程序如何帮助我们研究缓冲区溢出,这是现实世界许多系统中一种很重要的安全漏洞。最后,查看机器级程序如何实现函数要求的栈空间大小在每次执行时都可能不同的情况。