win32 汇编读文件

做了2个小程序,没有读成功;文件打开了;

		.386.model flat, stdcalloption casemap :noneinclude		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib
include		Comdlg32.inc
includelib	Comdlg32.libICO_MAIN	equ	1000
DLG_MAIN	equ	1000
IDM_MAIN	equ	1000
IDM_OPEN	equ	1101
IDM_EXIT	equ	1104
IDC_INFO	equ	101.data
;szBuffer db 1024 dup (?) .data?
hInstance	dd	?
hWinMain	dd	?szFileName	db	MAX_PATH dup (?).const
szCaption	db	'执行结果',0
szFilter	db	'Text Files(*.txt)',0,'*.txt',0,'All Files(*.*)',0,'*.*',0,0
szDefExt	db	'txt',0
szErrOpenFile	db	'无法打开源文件!',0
szOpenFile	db	'打开源文件成功!',0.code
; 显示“打开文件”对话框
_OpenFile	proclocal	@stOF:OPENFILENAMElocal   @iFileLength, @dwBytesRead, @hFilelocal	@szBuffer[512]:byteinvoke	RtlZeroMemory,addr @stOF,sizeof @stOFmov	@stOF.lStructSize,sizeof @stOFpush	hWinMainpop	@stOF.hwndOwnermov	@stOF.lpstrFilter,offset szFiltermov	@stOF.lpstrFile,offset szFileNamemov	@stOF.nMaxFile,MAX_PATHmov	@stOF.Flags,OFN_FILEMUSTEXIST or OFN_PATHMUSTEXISTinvoke	GetOpenFileName,addr @stOF.if	eaxinvoke	MessageBox,hWinMain,addr szFileName,addr szCaption,MB_OK;invoke CreateFile, @stOF.lpstrFile, GENERIC_READ, FILE_SHARE_READ,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULLinvoke	CreateFile,addr szFileName,GENERIC_READ,FILE_SHARE_READ,0,\OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0.if	eax ==	INVALID_HANDLE_VALUEinvoke	MessageBox,hWinMain,addr szErrOpenFile,NULL,MB_OK or MB_ICONEXCLAMATIONret.endifinvoke	MessageBox,hWinMain,addr szOpenFile,NULL,MB_OKmov	@hFile,eax;invoke GetFileSize, @hFile, NULL;mov @iFileLength, eaxinvoke ReadFile, @hFile, addr @szBuffer, sizeof @szBuffer, addr @dwBytesRead, 0invoke	MessageBox,hWinMain,addr @szBuffer,NULL,MB_OKinvoke SetDlgItemText,hWinMain,IDC_INFO,addr @szBuffer.endifret_OpenFile	endp_ProcDlgMain	proc	uses ebx edi esi hWnd,wMsg,wParam,lParammov	eax,wMsg.if	eax ==	WM_CLOSEinvoke	EndDialog,hWnd,NULL.elseif	eax ==	WM_INITDIALOG.elseif	eax ==	WM_COMMANDmov	eax,wParam.if	ax ==	IDM_EXITinvoke	EndDialog,hWnd,NULL.elseif	ax ==	IDM_OPENinvoke	_OpenFile.endif.elsemov	eax,FALSEret.endifmov	eax,TRUEret
_ProcDlgMain	endpstart:invoke	GetModuleHandle,NULLmov	hInstance,eaxinvoke	DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULLinvoke	ExitProcess,NULLend	start
		.386.model flat,stdcalloption casemap:noneinclude		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib.data
szBuffer db 1024 dup (?) .data?
hFile	dd	?
dwBytesRead  dd ?.const
filename        db      'D:\文本类型资料\cmem.txt',0
szErrOpenFile	db	'无法打开源文件!',0
szOpenFile	db	'打开源文件成功!',0.codestart:invoke	CreateFile,addr filename,GENERIC_READ,FILE_SHARE_READ,0,\OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0.if	eax ==	INVALID_HANDLE_VALUEinvoke	MessageBox,NULL,addr szErrOpenFile,NULL,MB_OK or MB_ICONEXCLAMATIONret.endifinvoke	MessageBox,NULL,addr szOpenFile,NULL,MB_OKmov	hFile,eaxinvoke ReadFile, hFile, addr szBuffer, 1024, addr dwBytesRead, 0invoke	MessageBox,NULL,addr szBuffer,NULL,MB_OKinvoke	ExitProcess,NULLend	start

 

有时间继续;

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

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

相关文章

2024-02-21 学习笔记(DETR)

自动多模态检测验证效果不佳(过检太多)后,节后开始尝试DETR路线。 基本梳理了下DETR发展和验证的脉络,先进行相应指定场景的效果验证。 关于DETR系列的介绍,B站上比较多,迪哥的都讲的比较细。 推荐大佬的…

如何在java中使用 Excel 动态函数生成依赖列表

前言 在Excel 中,依赖列表或级联下拉列表表示两个或多个列表,其中一个列表的项根据另一个列表而变化。依赖列表通常用于Excel的业务报告,例如学术记分卡中的【班级-学生】列表、区域销售报告中的【区域-国家/地区】列表、人口仪表板中的【年…

[计网底层小探索]:实现并部署多线程并发Tcp服务器框架(基于生产者消费者模型的线程池结构)

文章目录 一.网络层与传输层协议sockaddr结构体继承体系(Linux体系)贯穿计算机系统的网络通信架构图示: 二.实现并部署多线程并发Tcp服务器框架线程池模块序列化反序列化工具模块通信信道建立模块服务器主体模块任务回调模块(根据具体应用场景可重构)Tips:DebugC代码过程中遇到…

el-table同时固定左列和右列时,出现错误情况

最近遇到一个问题,就是需求是要求表格同时固定序号列和操作列,我们用的是饿了么组件库的el-table,如下图,出现了错误情况: 解决方法就是使用doLayout方法: 如果使用了keep-alive,可以在activated里执行doLayout方法: activated() {this.$nextTick(() => {this.$ref…

【Crypto | CTF】BUUCTF RSA2

天命:密码学越来越难了,看别人笔记都不知道写啥 天命:莫慌,虽然我不会推演法,但我可以用归纳法 虽然我不知道解题的推演,但我可以背公式啊哈哈哈 虽然我不会这题,但是我也能做出来 公式我不知…

机器学习基本概念(李宏毅课程)

目录 一、概念:1、机器学习概念:2、深度学习概念: 二、深度学习中f(.)的输入和输出:1、输入:2、输出: 三、三种机器学习任务:1、Regression回归任务介绍:2、Classification分类任务介绍:3、Stru…

计算以10为底的对数 math.log10(x)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算以10为底的对数 math.log10(x) [太阳]选择题 以下代码的输出结果中正确的是? import math print("【执行】math.log10(10)") print(math.log10(10)) print("【执行】math…

【elasticsearch实战】知识库文件系统检索工具FSCrawler

需求背景 最近有一个需求需要建设一个知识库文档检索系统,这些知识库物料附件的文档居多,有较多文档格式如:PDF, Open Office, MS Office等,需要将这些格式的文件转化成文本格式,写入elasticsearch 的全文检索索引&am…

进度条小程序

文章目录 铺垫回车换行缓冲区概述强制冲刷缓冲区 简单实现倒计时功能进度条小程序版本一实例代码效果展示分析 版本二 铺垫 回车换行 回车和换行是两个独立的动作 回车是将光标移动到当前行的最开始(最左侧) 换行是竖直向下平移一行 在C语言中&…

怿星科技测试实验室(EPT LABS)服务介绍

据中国汽车工业协会数据,2023年我国汽车产销量分别达3016.1万辆和3009.4万辆,年产销量双双创历史新高,汽车行业进入了新时代。新汽车时代下的OEM竞争更激烈,汽车电子架构更复杂,研发周期更短,软件迭代更快&…

VSCODE中使用Django处理后端data和data models

链接: Python and Django tutorial in Visual Studio Code MVC的理解 在实际的程序中采用MVC的方式进行任务拆分。 Model(模型)负责封装应用程序的数据和业务逻辑部分。Model包含数据结构,数据处理逻辑以及相关的操作方法&#…

NetSuite 中Inventory Adjustment批次物料CSV导入分析二

上一篇最后我们有一个遗留问题是说,调增和调减的操作是否能在一个CSV导入模版中进行操作,经过测试后发现,是可以的,只是External ID需要在设置的时候注意对应好就OK。这里建议大家先查看上一篇文章,因为有一些完全重复…

Day14-Linux系统基础权限知识精讲

Day14-Linux系统基础权限知识精讲 1. chattr2. Linux系统权限。2.1 基础权限介绍2.2 画图讲解2.3 文件和目录权限细节总结2.4 建环境测试2.5 数字权限设置2.6 字符权限设置 给文件加特殊属性,实现特殊功能的命令。 1. chattr a 只能追加内容,不能删除。…

UE蓝图 入口(FunctionEntry)节点和源码

系列文章目录 UE蓝图 Get节点和源码 UE蓝图 Set节点和源码 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 UE蓝图 入口(FunctionEntry)节点和源码 文章目录 系列文章目录一、FunctionEntry节点功能二、入口节点用法1. 创建函数2. 命名函数3. 定义参数4. 编写函数逻辑5…

Git合并固定分支的某一部分至当前分支

在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 1.批量文件合并 1.1.创建并切换到一个新的临时分支 首先,从要合并的源分支(即要…

C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】

C面向对象程序设计-北京大学-郭炜【课程笔记(四)】 1、this指针1.1、this指针的作用1.2、this指针和静态成员函数 2、静态成员变量和静态成员函数2.1、基本概念2.2、基本概念总结2.3、如何访问静态成员2.4、静态成员变量的使用场景(重要&…

浏览器---浏览器/http相关面试题

1.localStorage和sessionStorage 共同点:二者都是以key-value的键值对方式存储在浏览器端,大小大概在5M。 区别: (1)数据有效期不同:sessionStorage仅在当前浏览器窗口关闭之前有效;localStorag…

Eigen:Vector3d 变量初始化遇到的问题

Eigen:Vector3d 变量初始化遇到的问题 2024.2.22 日 ,在使用 Eigen:Vector3d 这个类型的 变量,在类中进行初始化时 遇到了如下问题: 首先在类的声明内部,是不能声明完,再给变量赋值的,不管是 Eigen:Vector…

【 Flutter】安装、运行坑记录

运行demo报错 Exception in thread “main” java.net.ConnectException: Connection timed out: connect原因:网络问题,gradle包未能下载 解决方案:配置android studio代理,重新打开项目,as会自动下载缺失依赖

(done) 如何判断一个矩阵是否可逆?

参考视频:https://www.bilibili.com/video/BV15H4y1y737/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 这个视频里还暗含了一些引理 1.若 AX XB 且 X 和 A,B 同阶可逆,那么 A 和 B 相似。原因&#xff1…