当前位置: 首页 > news >正文

汇编-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定义的默认值

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

相关文章:

汇编-PROTO声明过程

64位汇编 64 模式中,PROTO 伪指令指定程序的外部过程,示例如下: ExitProcess PROTO ;指定外部过程,不需要参数.code main PROCmov ebx, 0FFFFFFFFh mov ecx,0 ;结束程序call ExitProcess ;调用外部过程main ENDP END 32位…...

MYSQL事务操作

...

自动化测试——自动卸载软件

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…...

Linux - 系统调用(syscall)

说明 基于riscv64 soc linux_5.10.4平台,通过新增一个系统调用深入了解下系统调用实现原理。 简介 Linux 软件运行环境分为用户空间和内核空间,默认情况下,用户进程无法访问内核,既不能访问内核所在的内存空间,也不…...

c语言-冒泡排序

冒泡排序原理: 冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的元素序列,比较相邻的两个元素,如果它们的顺序不符合要求(例如升序要求前面的元素小于后面的元素),则交换它们的位置。遍历…...

Mysql面经

Select语句的执行顺序 1、from 子句组装来自不同数据源的数据; 2、where 子句基于指定的条件对记录行进行筛选; 3、group by 子句将数据划分为多个分组; 4、使用聚集函数进行计算;AVG() SUM() MAX() MIN() COUNT() 5、使用 havin…...

1panel可视化Docker面板安装与使用

官网地址1Panel - 现代化、开源的 Linux 服务器运维管理面板 文章目录 目录 文章目录 前言 一、环境准备 二、使用步骤 1.安装命令 2.一些命令 3.使用 总结 前言 一、环境准备 虚拟机centos 已经安装好docker和 Docker Compose 或者都没安装 1panel会帮你自动安装 二、使用…...

es6中的import导入模块 和 export导出模块

es6中的import导入模块 和 export导出模块 一、定义二、使用1.默认导出导入2..命名导出导入3.命名导出(Named Export)与默认导出(Default Export)结合使用 三、总结 一、定义 功能:用于导入和导出模块的内容。 静态加载…...

WordPress插件开发教程手册 — 钩子(Hooks)

钩子是用一段代码添加/修改另外一段代码的方式,是 WordPress插件和主题与 WordPress 内核交互的基础,钩子在 WordPress 内核中也被广泛使用。WordPress 中有两种钩子,Action 和 Filter。使用钩子时,我们需要先编写一个自定义函数作…...

Python开发运维:Celery连接Redis

目录 一、理论 1.Celery 二、实验 1.Windows11安装Redis 2.Python3.8环境中配置Celery 3.celery的多目录结构异步执行 4.celery简单结构下的定时任务 三、问题 1.Celery命令报错 2.执行Celery命令报错 3.Win11启动Celery报ValueErro错误 4.Pycharm 无法 import 同目…...

JSP:JDBC

JDBC(Java Data Base Connectivity的缩写)是Java程序操作数据库的API,也是Java程序与数据库相交互的一门技术。 JDBC是Java操作数据库的规范,由一组用Java语言编写的类和接口组成,它对数据库的操作提供基本方法&#…...

能否在一台电脑上安全地登录多个Facebook账号?

Facebook是一个流量大、用户多的平台,许多人可能需要在一台设备上管理多个Facebook账号,无论是出于个人或职业需求,都能带来极大地便利。然而,保持每个账号的安全性和隐私性却是一个挑战。本文将介绍如何在一台电脑上安全地登录多…...

Banana Pi [BPi-R3-Mini] 回顾和主线 ImmortalWrt 固件支持

BananaPi BPi-R3 Mini 采用 MediaTek 830(4 个 A53,最高 2.0 GHz),具有 2 个 2.5 GbE、AX4200 2.4G/5G 无线和 USB 2.0 端口。它还具有两个 M.2 连接器,可用于 NVMe SSD 和 5G 模块(板上包含 Nano SIM 插槽…...

2001-2022年上市公-供应链话语权测算数据(原始数据+处理代码Stata do文档+结果)

2001-2022年上市公-供应链话语权测算数据(原始数据处理代码Stata do文档结果) 1、时间:2001-2022年 2、指标:企业代码、股票代码、年份、股票简称、上市公司前五大供应商的采购额之和占企业当年总采购额的比例、上市公司前五大客…...

如何通过ShardingJDBC进行读写分离

背景信息: 面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。 对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库。其中主库负责处理事务性的增删改操作,从库负责处理查询操作&#…...

【uniapp】部分图标点击事件无反应

比如:点击这个图标在h5都正常,在小程序上无反应 css:也设置z-index,padding 页面上也试过click.native.stop.prevent"changePassword()" 时而可以时而不行, 最后发现是手机里输入键盘的原因,输…...

前端vue导出PPT,使用pptxgen.js

前言 公司新需求需要导出ppt给业务用,查阅资料后发现也挺简单的,记录一下。 如有不懂的可以留言!!! 1.安装包 npm install pptxgenjs --save2.引入包 在需要使用的文件中引入 import Pptxgenfrom "pptxgenjs&…...

JSP过滤器和监听器

什么是过滤器 Servlet过滤器与Servlet十分相似,但它具有拦截客户端(浏览器)请求的功能,Servlet过滤器可以改变请求中的内容,来满足实际开发中的需要。 对于程序开发人员而言,过滤器实质就是在Web应用服务…...

pcl+vtk(十二)使用vtkPolyData创建点、线、面(不规则面)、三角带

一、前言 vtkPlaneSource创建平面,只可以创建平行四边形的平面,根据一个起点和两个终点创建法向量创建平面。但是当有创建多个点围成不规则平面的需求时,该怎么创建显示呢? 在网上查了资料,可以使用vtkPolyData拓扑结…...

51单片机的智能浇花系统【含proteus仿真+程序+报告+原理图】

1、主要功能 该系统由AT89C51单片机LCD1602显示模块DHT11温湿度模块DS1302时间模块继电器驱动水泵模块光敏传感器等模块构成。适用于智能浇花、自动浇花、智能盆栽等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、土壤温湿度、光照强度等信息 2、DHT11采集温湿度信…...

FPGA——AXI4总线实战:从协议解析到高效设计

1. AXI4总线协议基础解析 第一次接触AXI4总线时,我被它复杂的信号列表吓到了。但真正理解后发现,这套协议设计得非常精妙。AXI4(Advanced eXtensible Interface)是ARM公司推出的第三代AMBA总线标准,现在已经成为FPGA设…...

从-Xbootclasspath/p报错到成功启动:一次BurpSuite与Java版本兼容性实战排障

1. 当BurpSuite遇上Java高版本:一场兼容性噩梦的开始 那天我正打算给新电脑配置渗透测试环境,兴冲冲下载了BurpSuite破解版和配套的loader工具。双击burp-loader-keygen.jar时,系统就像什么都没发生一样安静——这场景是不是很熟悉&#xff1…...

5分钟掌握可视化Cron表达式生成:告别手动配置的烦恼

5分钟掌握可视化Cron表达式生成:告别手动配置的烦恼 【免费下载链接】no-vue3-cron 这是一个 cron 表达式生成插件,基于 vue3.0 与 element-plus 实现 项目地址: https://gitcode.com/gh_mirrors/no/no-vue3-cron 还在为复杂的Cron表达式语法而头疼吗&#x…...

告别复制卡!手把手教你用92HID623CPU V5.00给小区门禁梯控做加密发卡(附防锁卡指南)

92HID623CPU V5.00门禁系统安全发卡实战指南 最近在帮几个小区做门禁系统升级时,发现很多物业还在使用老式的M1卡,这种卡片存在严重的安全隐患——复制一张卡只需要几十秒。而采用CPU卡的门禁系统,安全性可以提升好几个量级。今天就以92HID62…...

《JAVA面经实录》- Web后端面试题

《JAVA面经实录》- Web后端面试题一、《JAVA面经实录》- HTTP面试题1.HTTP协议是什么?HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准。基本上用到的就是GET和POST&#xff0…...

2026实测:物理级AI消痕神器!别再让你的网文被判“文本高熵”了

搞了两个小时,终于把这个坑填上了。 说实话,2026年了,如果你还在用那种“机里机气”的初级AI写小说,那真的是在“退婚流”的边缘反复横跳。 现在的审核平台可不傻,RAG和各种检测算法早就进化到了物理级。 你的稿子发上…...

微信小程序Canvas实战:5分钟实现图片自由拖拽+缩放旋转(附完整代码)

微信小程序Canvas进阶:打造高互动性图片编辑器 在移动互联网时代,图片编辑已成为社交分享的刚需功能。微信小程序凭借其轻量级特性,结合Canvas的强大绘图能力,为开发者提供了实现复杂图片交互的可能。本文将带你从零构建一个支持拖…...

Unity新手避坑指南:用C#脚本动态修改材质和Shader,别再搞混material和sharedMaterial了

Unity材质控制深度解析:从内存管理到动态效果实战 在Unity开发中,材质(Material)和着色器(Shader)的控制是创建动态视觉效果的核心技能。许多开发者在使用C#脚本修改材质属性时,常常陷入material和sharedMaterial的混淆陷阱,导致内…...

5G NR上行控制信息复用:PUSCH信道上的UCI资源映射实战解析

1. 5G NR上行控制信息复用基础概念 在5G NR系统中,上行控制信息(UCI)的传输是保证通信质量的关键环节。UCI通常包含HARQ-ACK反馈、信道状态信息(CSI)和调度请求(SR)等重要内容。这些信息可以通过…...

SAP ECC6 EC-CS 标准报表项目(FS Item)× SAP 标准总账科目对照版

SAP ECC6 EC-CS 标准报表项目(FS Item) SAP 标准总账科目对照版(Excel 可直接下载,适配中国企业会计准则 IFRS,含事务码映射、必填字段、映射逻辑,可直接导入 CX16 做科目映射)⚠️ 核心说明编…...