一、proto伪指令–函数声明

功能和高级语言中的函数声明一样,在代码最前面写函数声明,在后面写函数定义

proto伪指令的格式
函数名 proto [距离] [语言] [参数1]:数据类型,[参数2]:数据类型,……

代码示例:

Asm_Function_1 proto stdcall arg1:dword,arg2:dword

一些注意事项

32位汇编不需要指定距离
可以指定语言也可也不指定,直接写参数,这里的语言就是和调用约定对等的。写“C”就是cdecl调用约定,写“stdcall”就是stdcall调用约定
proto指令、距离、语言和参数之间用空格隔开
在参数与参数之间用“,”隔开
在参数与参数对应的数据类型之间用“:”隔开
可以不用写参数名称,但必须要写上数据类型和“:”

二、proc伪指令–函数定义

使用proto指令用来函数声明,使用proc函数用来函数定义。使用规则和proto指令一样

代码示例:

proc stdcall arg1:dword,arg2:dword函数体代码块...
Asm_Function_1 endp

注意事项

函数定义语句和proto一样,写完函数体代码之后需要以[函数名] endp结束函数定义
但proc和proto搭配使用时,proto可以省略参数名,但proc不能省略。(和C中的规则一模一样)

三、invoke伪指令–函数调用

使用invoke伪指令会帮你完成参数校检和压参操作,也就是说不用写压参的push指令。直接和高级语言一样直接调用函数即可

invoke伪指令的格式
invoke 函数名[,参数1][,参数2]……
代码示例:

invoke  Asm_Function_1,100,0x100

注意事项:
函数名称和参数,参数和参数之间都用 空格 隔开

汇编proto、proc、invoke伪指令与函数声明、函数定义、函数调用相关推荐

  1. c语言函数声明定义参数命名,C语言函数声明与定义

    C语言函数声明与定义教程 在 C语言函数声明与定义 语法 type funcName(paramType1 param1, paramType2 param2){ // 执行语句... return ...

  2. C语言 函数声明和定义 - C语言零基础入门教程

    目录 一.简介 二.函数返回值 1.函数没有返回值 2.函数有返回值 三.函数参数 1.函数没有参数 2.函数有固定参数 3.函数有不定长度参数 四.函数声明和定义 1.函数声明:不需要实现这个函数的 ...

  3. [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处?...

    [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处? 这个好多人都已经写过了,这里插播一下,在OHIF- ...

  4. python函数的声明_Python函数声明与定义

    Python函数声明与定义教程 在 Python函数声明与定义详解 语法 def funcName(param1, param2): # do return [val] 参数 参数 描述 def 定义 ...

  5. C语言函数声明、定义、调用

    函数的声明: 就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,稍后我会把定义补上. 有的时候不写声明函数也是可以执行的,但是把函数定义写在函数调用之后就会有提示甚至报错. 函 ...

  6. 搞不懂c++ 的函数声明与定义

    一.函数的声明: C++函数的声明的作业就是:告诉编译器函数名称及如何调用函数.函数的实际主体可以单独定义.(你考试考了59分告诉了你妈妈准备要打你) 二.函数的定义: 函数的定义一般主要有5个步骤: ...

  7. 关于C++模板函数声明与定义的问题

    关于C++模板函数声明与定义的问题 关于C++模板函数声明与定义的问题 模板函数出现的问题 模板函数问题解决 模板函数出现的问题 今天在写代码的时候,发现了一个关于模板函数的问题.如下所示, demo ...

  8. c++ 函数声明与定义

    文章目录 一.函数的声明 二.函数的定义 三.函数声明与定义使用区别 四.为什么 C++ 允许多次声明呢? 五.分文件开发 一.函数的声明 函数声明的作用: 告诉编译器函数名称及如何调用函数.函数的实 ...

  9. c语言函数实际参数,C语言:函数声明与定义的参数不一致问题,后果可能很严重哦!!!!!...

    具体: 在文件main.c中 int func ();     //声明中没参数 int main(){ int c = func();            //调用时也不传参,这样才能编译通过 p ...

  10. scala 函数中嵌套函数_Scala函数–声明,定义,调用和嵌套函数

    scala 函数中嵌套函数 A function is a set of statements combined together to perform a specific task. The co ...

最新文章

  1. JZOJ 1240. Fibonacci sequence
  2. 图像坐标球面投影_坐标系统及投影概述
  3. Oracle区分中文和英文,oracle中中英文段落划分实现
  4. IT人才需要怎样的沟通表达能力
  5. 写给 3 年内程序开发者的一封信
  6. 2021-08-08 idea 连接Mysql
  7. 社会资源全整合 视频监控全覆盖
  8. C# 提示框 鼠标移动到控件提示 toolTip气泡提示框
  9. php 投票评选插件,jQuery_投票系统显示结果--jQuery插件,投票系统是网站中十分常见的 - phpStudy...
  10. Latex安装与使用
  11. cad一键卸载工具叫什么_CAD专用卸载修复工具,一键完全彻底卸载删除CAD软件的专用卸载工具...
  12. 【LOJ 10064】黑暗城堡
  13. 文件服务器 tmp文件夹,Linux管理临时文件tmpfiles
  14. 深度学习/机器学习入门基础数学知识整理(五):Jensen不等式简单理解,共轭函数
  15. 【MindSpore】【数据集】数据集内数据获取失败导致迭代器退出
  16. andriod TV 获取已连接蓝牙遥控器电池电量总结
  17. 程序员IT认证有用吗?软件工程师考证有必要吗?
  18. python字典的遍历方式:向列表一样通过索引遍历字典的值
  19. rosdep update 错误
  20. 【USACO1.2_1】★Milking Cows 挤牛奶

热门文章

  1. Spring Cloud:服务消费(Ribbon)【Dalston版】
  2. linux指令格式介绍
  3. Rust语言开发基础(二)开发环境安装
  4. 濛濛有感——懂与不懂(一)
  5. el-table表格数据没有刷新
  6. 亿能bms上位机_BMS上位机 - 源码下载|Windows编程|通讯编程|源代码 - 源码中国
  7. 在python3.X中执行python manage.py migrate命令的坑
  8. ELK logstash gork匹配在线测试
  9. 世界最好的字体引擎,泰山FreeType,开源:我们站在巨人的肩膀上
  10. JAVA:获得当前执行路径的办法