X86 - 64 核心编程:非叶函数示例解析
1. 引言
在 x86 - 64 编程中,非叶函数的编写涉及到诸多关键概念,如栈帧指针的使用、非易失寄存器的管理以及栈指针的对齐等。本文将通过几个示例程序详细介绍这些概念。
2. 基本栈帧示例:CallingConvention1
2.1 程序概述
CallingConvention1 程序展示了如何在 x86 - 64 汇编语言函数中初始化栈帧指针,该指针可用于引用栈上的参数值和局部变量。
2.2 C++ 代码( CallingConvention1.cpp )
#include "stdafx.h"
#include "MiscDefs.h"
extern "C" Int64 Cc1_(Int8 a, Int16 b, Int32 c, Int64 d, Int8 e, Int16 f,
Int32 g, Int64 h);
int _tmain(int argc, _TCHAR* argv[])
{
Int8 a = 10, e = -20;
Int16 b = -200, f = 400;
Int32 c = 300, g = -600;
Int64 d = 4000, h = -8000;
Int64 x = Cc1_(a, b, c, d, e, f, g, h);
printf("\nResults for CallingConvention1\n");
printf("
超级会员免费看
订阅专栏 解锁全文
2147

被折叠的 条评论
为什么被折叠?



