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

c语言第一课学习目标:1.运行第一个C语言程序2.熟悉VC开发环境3.C函数的格式4.C函数的调用5.函数的反汇编分析-空函数6.功能的反汇编分析-简单功能7.函数嵌套调用的反汇编分析运行第一个C语言程序,熟悉VC开发环境。# include & ltstdio.h & gt//头文件int()//程序入口点{print...

c语言第一课学习目标:

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

2.熟悉VC开发环境

3.C函数的格式

4.C函数的调用

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

6.功能的反汇编分析-简单功能

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

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

# include & ltstdio.h & gt//头文件

int()//程序入口点

{

printf(“Hello Word!”);

返回0;

}

c函数的格式

没有参数和返回值的函数格式

Void函数名()

{

//代码

}

带参数且无返回值的函数格式

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

{

//代码

}

裸函数

void __declspec(naked)函数()

{

//这里不能有代码。

}

如何用C语言写汇编

void __declspec(naked)函数()

{

//通过汇编写一个函数,把任意两个数相加。

__ASM

{

//提升堆栈

推送ebp

mov ebp,esp

添加esp,0x40

//保护现场

推送ebx

推送esi

推送edi

//填充溢出缓冲区

mov ecx,0x10

mov eax,0xCCCCCCCC

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

ret stos dword ptr es

//实现函数

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

添加eax,dword ptr ss:[ebp+c]

//还原场景

pop edi

pop esi

pop ebx

//恢复原始堆栈

mov esp,ebp

为什么要恢复栈基址

//返回调用的下一行

浸水使柔软

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

添加esp,0x8

}

}

调用惯例

调用约定的参数堆栈顺序来平衡堆栈。

__cdecl从右向左堆栈。调用者清除堆栈。

__stdcall从右向左堆栈,并自行清理堆栈。

__fastcallECX/EDX传递前两个参数,其余参数从右向左堆栈,以自行清除堆栈。

观察以下三个函数的参数在程序集中是如何堆叠的

例1。

int __cdecl plus1(int x,int y)

{

返回x+y;

}

例2。

int __stdcall plus1(int x,int y)

{

返回x+y;

}

例3。

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

{

返回x+y+l+k;

}

本文来自怪你过分美丽投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/645586.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-22
下一篇 07-22

相关推荐

  • chrome更改语言设置 教你设置谷歌浏览器的语言

    Google Chrome是由Google开发的一款设计简单、高效的Web浏览工具。Google Chrome的特点是简洁、快速。GoogleChrome支持多标签浏览,每个标签页面都在独立的“沙箱”内运行,在提高安全性的同时,一个标签页面的崩溃也不会导致其他标签页面被关闭。此外,Google Chrome基于更强

    2023-07-29 08:32:01
    234 0
  • 语言栏不显示了怎么办 win7语言栏修复命令

    我们在使用电脑的时候会遇到一些问题,比如Windows S10语言栏没了怎么解决问题。让我们和边肖一起往下看。操作流程:1.首先,我们在计算机的开始菜单中找到并点击设置选项。2.然后,在页面中,我们找到并单击时间和语言选项。3.然后我们首先在左边选择语言,在右边找到拼写、打

    2023-07-29 05:54:01
    1001 0
  • c语言选择排序法代码 c语言三种排序方法

    排序,从字面上讲,就是选择一组序列中的元素。比如给定一组数列,要求对其元素从小到大排序,那么每次排序只需要选择数列第一位最小的元素,第二次排序和第三次排序也是一样,这样后面数列中最小的元素被选中,放在已经排序的元素的末尾,直到最后没有元素可以排序。这里有几

    2023-07-28 15:02:01
    702 0
  • win10怎么还原语言栏位置

    你好,win10无法输入中文,语言状态栏消失,你可以下载安装输入法,然后语言状态栏就有了。1电脑点击开始键,再点击控制面板,如下图所示2在控制面板,点击更改或其他输入法,如下图所示3在更改或其他输入法窗口,点击更改键盘,如下图所示4在更改键盘,点击语言栏,再点击停

    2023-07-28 06:52:01
    124 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信