c++ - 什么是调用指令

标签 c++ assembly

我最近在看《Programming: Principles and Practice using C++》,作者提到在类定义中写成员函数的定义可以使函数内联。我不完全确定那是什么意思,所以我查看了 https://www.geeksforgeeks.org/inline-functions-cpp/以获得更具体的理解。我似乎无法理解“指令”在这句话的上下文中的含义:

When the program executes the function call instruction the CPU stores the memory address of the instruction following the function call.

我用谷歌搜索,看起来调用指令只是将控制传递给程序的另一部分或另一个应用程序。如果那是他们的意思,他们不应该说“CPU存储函数调用的调用指令的内存地址”吗?

这个问题可能听起来很奇怪或挑剔,但我是 CS 的新手,真的很想深入了解 CS。

最佳答案

它们实际上意味着存储函数调用后指令的内存地址。这是因为指令在机器代码级别的工作方式。函数调用完成后,程序需要一种方法返回到原来的位置。它通过跳转到存储的内存地址的跳转指令来执行此操作,这会导致执行跳转到该指令。如果内存地址指向函数调用,它将永远循环。

关于c++ - 什么是调用指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996861/

相关文章:

c++ - QScreen::width() 和 QScreen::deviceWidth()、QScreen::height() 和 QScreen::deviceHeight() 的区别

c++ - cmake .exe 和终端命令之间的 ROOT 结果不匹配

c - 为什么 x86 的 INC 指令不是原子的?

c++ - 优化计算时间

c++ - MSVC 2008 Express Edition 编译器做什么和不做什么

c++ - 禁用 operator= 和复制构造函数

assembly - 为什么 MIPS 汇编程序有多个返回值寄存器?

c - 从 C 编译器理解 MIPS 汇编代码

c++ - 内在示例-这里发生了什么(包括完整代码)?

assembly - Grub 和进入实模式(低级汇编语言编程)