汇编-PROTO声明过程

64位汇编

64 模式中,PROTO 伪指令指定程序的外部过程,示例如下:

ExitProcess PROTO   ;指定外部过程,不需要参数.code
main PROCmov ebx, 0FFFFFFFFh mov ecx,0   ;结束程序call ExitProcess    ;调用外部过程main ENDP
END  

32位汇编

然而在32位模式中,PROTO需要包含过程参数列表

PROTO 必须在 INVOKE 之前首先岀现。换句话说,这些伪指令的标准顺序为:

MySub PROTO        ;过程原型
.
INVOKE MySub       ;过程调用
.
MySub PROC          ;过程实现
..
MySub ENDP

还有一种情况也是可能的:过程实现可以出现在程序的前面,先于调用该过程的 INVOKE 语句

MySub PROC           ;过程定义
..
MySub ENDP
.
INVOKE MySub       ;过程调用

声明函数的格式是:

函数名 proto [距离] [语言] [参数1]:数据类型,[参数2]:数据类型,......   

距离可以是NEAR, FAR, NEAR 16, NEAR 32, FAR 16或FAR 32, Win 32中只有一个平坦的段, 无所谓距离, 所以在定义时是忽略的; 语言类型就是.model那些类型, 如果忽略, 则使用.model定义的默认值

对于编译器来说, 它只关心参数的数量, 参数的名称在这里是“无用”的,仅是为了可读性而设置的,可以省略掉,所以下面两句消息框函数的定义实际上是一样的:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/163653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手把手云开发小程序-(四)-uniclould增删改查业务开发

一,导入uView 在开发小程序的时候,我习惯使用uView这个ui库。主要是直接用当然比自己写省时间。 它的官网:uView - 多平台快速开发的UI框架 - uni-app UI框架 (gitee.io) 导入: npm install uview-ui2.0.31然后按照官网进行配…

UltraCompare 23 for Mac文件对比工具

UltraCompare是一款功能强大的文件比较和合并工具, 以下是它的特色介绍: 多种文件格式支持:UltraCompare支持比较和合并多种文件格式,包括文本文件、二进制文件、office文档、PDF文件等。 文件差异高亮显示:UltraComp…

内测分发平台的合作生态和生态效应如何

大家好,我是咕噜-凯撒,随着移动互联网和智能设备的快速发展,越来越多的开发者和企业开始关注产品的质量和体验。而内测分发平台则成为了一种重要的工具,能够帮助他们更好地测试、优化和推广产品。在此过程中,内测分发平…

特殊企业信息轻松查询:特殊企业基本信息查询API的实用性探讨

引言 在当今数字化时代,企业管理和决策往往取决于有效获取和分析关键信息。对于特殊企业,如香港公司、社会组织、律所、事业单位、基金会和新机构,获取准确、及时的基本信息至关重要。在这个背景下,特殊企业基本信息查询API正逐渐…

〔004〕虚幻 UE5 像素流部署

✨ 目录 ▷ 启用像素流插件▷ 打包项目▷ 下载环境包▷ 手动下载▷ 安装信令服务器环境▷ 启动信令服务器▷ 设置启动参数▷ 启动程序▷ 网页运行▷ 开启触控界面▷ 启用像素流插件 打开虚幻启动程序,选择 编辑 后点击 插件在插件列表中搜索 pixel streaming 关键字,勾选后重…

springcloud宿舍管理系统源码

开发技术: jdk1.8,mysql5.7,idea,vscode springcloud springboot mybatis vue elementui 功能介绍: 用户端: 登录注册 首页展示轮播,公告,报修,晚归登记&#xff0…

提升抖音小店服务分:优化策略与实操指南

抖音小店服务分是抖音平台为评估和提升小店服务质量而设立的一项指标。它通过对小店在订单管理、售后服务、物流管理等多个方面的表现进行评估和计算,为小店提供一个可衡量的服务质量指标。提高抖音小店服务分数对于增加用户信任度、提升销售额和增加曝光度都非常重…

第十七章 Java链接数据库

目录 1.登录MySQL 2.创建库和表 3.使用Java命令查询数据库操作 4.右击——点击“Build Path”——选择第四个——找到包的位置——导入成功 一、创建java项目 1.注册驱动 2.获取链接 3.获取statment对象 4.执行sql语句返回结果集 5.遍历结果集 6.关闭连接释放资源 封装…

Linux:设置Ubuntu的root用户密码

执行以下命令: 给root用户设置密码 sudo passwd 输入两次密码 切换root su root 退出root用户 exit

windows根据已有的安卓签名文件获取MD5签名

windows根据已有的安卓签名文件获取MD5签名 0 现状 uniapp 本机号码一键登录需要MD5的,现有的签名文件但是只有SHA1和SHA256 查看SHA1和SHA256 keytool -list -v -keystore [你的.keystore文件]1 前提 已有生成签名文件的环境 搭建Openssl环境,设置…

0基础能不能转行做网络安全?网络安全人才发展路线

最近有同学在后台留言,0基础怎么学网络安全?0基础可以转行做网络安全吗?以前也碰到过类似的问题,想了想,今天简单写一下。 我的回答是先了解,再入行。 具体怎么做呢? 首先,你要确…

idea 2023 安装配置 Gradle8.4

官网:https://gradle.org 下载 Gradle8.4 https://gradle.org/releases/ 解压到本地,到 gradle-8.4\init.d 目录下新建文件:init.gradle 这里有个坑,编译报http协议安全的问题,解决办法,加入&#xff1…

Android7.1 高通平台 修改系统默认语言

客户需求:修改系统默认语言为英文(美国) 源码位置:/build/tools/buildinfo.sh 只需修改 ro.product.locale的值即可,如下图:

【Java】定时器的简单应用

在写代码的过程中,如果我们遇到了隔一段时间就要进行一项任务时,采用定时器会提高我们的效率。下面对定时器的使用进行简单说明 1、应用说明 首先我们要创建一个Timer类 Timer timer new Timer(); 然后在timer中调用schedule()方法添加任务 timer.…

redis运维(十三) hash哈希

一 哈希 ① 定义 hash: 散列说明:key对应是值是键值对[python中的字典],其中键在redis中叫field.形如:value[{field1,value1},...{fieldN,valueN}],值本身又是一种键值对结构 ② 优点和缺点 wzj_height 180wzj_age 18等价 -->…

Confluence Server Webwork 预身份验证 OGNL 注入 (CVE-2021-26084)

漏洞描述 Confluence 是由澳大利亚软件公司 Atlassian 开发的基于 Web 的企业 wiki。 存在一个 OGNL 注入漏洞,允许未经身份验证的攻击者在 Confluence Server 或 Data Center 实例上执行任意代码。 漏洞环境及利用 搭建docker环境 Confluence搭建见前文 Atlas…

高效聚合 | AIRIOT智慧虚拟电厂管理解决方案

传统的电力供应模式主要依靠大型发电厂和电网进行能源传输和分配,但这种模式会导致能源浪费、环境污染等问题,往往存在如下的运维问题和管理痛点: 资源整合能力差:传统电力供应模式无法集成和整合分散的电力资源,包括…

深度学习动物识别 - 卷积神经网络 机器视觉 图像识别 计算机竞赛

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

课堂巡课如何提升教学质量?简单才是硬道理

随着教育技术的不断发展,在线巡课系统逐渐成为学校管理和教育质量提升的重要工具。在线巡课系统通过数字化手段,为学校提供了更加高效、精准的巡课管理方式,有力地支持了教育教学的改进和优化。 客户案例 小学巡课项目 山东某小学引入了泛地…

8.5 Windows驱动开发:内核注册表增删改查

注册表是Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息,注册表是一个巨大的树形结构,无论在应用层还是内核层操作注册表都有独立的API函数可以使用,而在内核中读写注册表则需要使用内核装用API函数,如…