CSAPP中对于寄存器的定义解释为什么和国内教科书中的不一致?

图片描述

请问一下这里%eax不是累加寄存器吗?为什么这里右边写的是返回值?这是什么意思?还有被调用者保存和调用者保存是什么意思?,这里cl,dl,sil,dil中指的第几个参数又是神马意思呢?

阅读 2.3k
1 个回答

返回值、调用者说的是函数调用约定(calling convention)。

函数调用约定规定了函数如何返回传参,如何返回结果。

你的书上说的是某一种特定的函数调用约定,也就是特定的一种寄存器使用的方式。

bl,cl这些就是一个16位的寄存器的低8位,例如cx的另一半是ch,h和l分别是high和low的意思。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题