c语言课设总结(c语言基础知识)

c语言课设总结(c语言基础知识)

  C语言第一课学习目标:

  1. 运行第一个C语言的程序

  2. 熟悉VC开发环境

  3. C函数的格式

  4. C函数的调用

  5. 函数的反汇编分析——空函数

  6. 函数的反汇编分析——简单功能

  7. 函数的反汇编分析——嵌套调用

  运行第一个C语言的程序,熟悉VC开发环境

  #include //头文件

  int main() //程序入口点

  {

  printf(“Hello Word!”);

  return 0;

  }

  C函数的格式

  无参数、无返回值的函数格式

  void 函数名()

  {

  //代码

  }

  有参数,无返回值的函数格式

  void 函数名(参数类型 参数名,参数类型 参数名)

  {

  //代码

  }

  裸函数

  void __declspec(naked) Function()

  {

  //此处可以无任何代码

  }

  如何在C语言里写汇编

  void __declspec(naked) Function()

  {

  //通过汇编写一个函数实现任意两个数相加

  __ASM

  {

  //提升堆栈

  push ebp

  mov ebp,esp

  add esp,0x40

  //保护现场

  push ebx

  push esi

  push edi

  //填充溢出缓冲区

  mov ecx,0x10

  mov eax,0xCCCCCCCC

  lea edi,dword ptr ss:[ebp-0x40]

  ret stos dword ptr es:[edi]

  //实现功能

  mov eax,dword ptr ss:[ebp+8]

  add eax,dword ptr ss:[ebp+c]

  //恢复现场

  pop edi

  pop esi

  pop ebx

  //恢复原始堆栈

  mov esp,ebp

  pop ebp

  //返回调用Call的下一行

  ret

  //平衡堆栈(假设传了两个参数)

  add esp,0x8

  }

  }

  调用约定

  调用约定参数压栈顺序平衡堆栈

  __cdecl从右至左入栈调用者清理堆栈

  __stdcall从右至左入栈自身清理堆栈

  __fastcallECX/EDX传递前两个参数,剩下的参数从右至左入栈自身清理堆栈

  观察下列三个函数在汇编中参数是如何入栈的

  例1.

  int __cdecl plus1(int x,int y)

  {

  return x+y;

  }

  例2.

  int __stdcall plus1(int x,int y)

  {

  return x+y;

  }

  例3.

  int __fastcall plus1(int x,int y,int l,int k)

  {

  return x+y+l+k;

  }

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    计算机正常运行中死机故障的解决

    计算机正常运行中死机故障的解决,,通常有三个问题,如黑屏、花屏和蓝屏。 故障1:散热 拆卸机箱、使用皮老虎、冷发等工具来清理机箱内的灰尘

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    excel常用函数都有哪些?

    excel常用函数都有哪些?,函数,哪些,常用,1、SUM函数:SUM函数的作用是求和。函数公式为=sum()例如:统计一个单元格区域:=sum(A1:A10)  统计多个

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高