Win32汇编数组学习2

news2025/1/25 4:47:02

之前学习过win32汇编数组;还不熟悉;继续熟悉;

先做几个基本的对话框,有一个静态文本框;

定义数组之后,用 wsprintf 函数格式化,然后调用 SetDlgItemText 赋值给静态文本框;

arr1 dd 101,202,303,607,903

    定义一个数组并赋初值,每个元素占4字节;
arr2 dd 3 dup(77)

    定义一个数组,3个元素,每元素占4字节,每个元素初始化为77;
arr3 dd 3 dup(?)

    定义数组,未初始化,将用0填充;
arr4 dd 2 dup(3 dup(7,9))

    定义嵌套数组,数组值依次是:7 9 7 9 7 9 7 9 7 9 7 9,一共占 48 字节;

格式化符;

fmt1   db '%d, %d, %d, %d, %d',0dh,0ah
       db '%d, %d, %d', 0dh,0ah
       db '%d, %d, %d', 0dh,0ah,0

0dh,0ah 是换行; 到0结束;

本来是想4个数组的值都显示在一个静态文本框;

但是4个数组的值一起格式化的时候,总显示这个错误;

根据资料,说要分行写,

invoke wsprintf,addr szbuf,addr fmt1,arr1, arr1[4], arr1[8], arr1[12], arr1[16],\
                               arr2, arr2[4], arr2[8],\
                               arr3, arr3[4], arr3[8],\
                               arr4,arr4[4],arr4[8],\
                               arr4[12],arr4[16],arr4[20],\
                               arr4[24],arr4[28],arr4[32],\
                               arr4[36],arr4[40],arr4[44]

已经分了多行;还是报这个错;

使用2个静态文本框,把arr4的值显示在第2个静态文本框;

asm,

		.386
		.model flat, stdcall
		option casemap :none

include		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib

ICO_MAIN	equ	1000
DLG_MAIN	equ	100
IDC_INFO	equ 	101
IDC_INFO2	equ 	102

                .data
arr1 dd 101,202,303,607,903
arr2 dd 3 dup(77)
arr3 dd 3 dup(?)
arr4 dd 2 dup(3 dup(7,9))

szbuf db 500 dup(0)

		.data?

hInstance	dd	?
hWinMain	dd	?

		.const
fmt1   db '%d, %d, %d, %d, %d',0dh,0ah
       db '%d, %d, %d', 0dh,0ah
       db '%d, %d, %d', 0dh,0ah,0
fmt2   db '%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d', 0dh,0ah,0

		.code

_ProcDlgMain	proc	uses ebx edi esi hWnd,wMsg,wParam,lParam

		mov	eax,wMsg
		.if	eax ==	WM_CLOSE
			invoke	KillTimer,hWnd,1
			invoke	EndDialog,hWnd,NULL

		.elseif	eax ==	WM_INITDIALOG
			push	hWnd
			pop	hWinMain
			invoke	LoadIcon,hInstance,ICO_MAIN
			invoke	SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
                        invoke wsprintf,addr szbuf,addr fmt1,arr1, arr1[4], arr1[8], arr1[12], arr1[16],\
                               arr2, arr2[4], arr2[8],\
                               arr3, arr3[4], arr3[8]
                        invoke	SetDlgItemText,hWinMain,IDC_INFO,addr szbuf
                        invoke wsprintf,addr szbuf,addr fmt2,arr4,arr4[4],arr4[8],\
                               arr4[12],arr4[16],arr4[20],\
                               arr4[24],arr4[28],arr4[32],\
                               arr4[36],arr4[40],arr4[44]
                        invoke	SetDlgItemText,hWinMain,IDC_INFO2,addr szbuf

		.else
			mov	eax,FALSE
			ret
		.endif
		mov	eax,TRUE
		ret

_ProcDlgMain	endp

start:
		invoke	GetModuleHandle,NULL
		mov	hInstance,eax
		invoke	DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
		invoke	ExitProcess,NULL

		end	start

rc文件,


#include		<resource.h>

#define	ICO_MAIN		1000
#define	DLG_MAIN		100
#define	IDC_INFO		101
#define	IDC_INFO2		102

ICO_MAIN	ICON		"Main.ico"

DLG_MAIN DIALOG 188, 193, 140, 120
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "数组示例"
FONT 9, "宋体"
{
 LTEXT "", IDC_INFO, 6, 6, 135, 65
 LTEXT "", IDC_INFO2, 6, 80, 135, 45
}

 结果;

 

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

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

相关文章

ARM 之十六 详解 CMSIS 版本变迁、各组件使用示例

目前,CMSIS 已经发展到了第六版,其目录结构也发生了重大的变化。在不断发展中,很多原来 CMSIS 的组件被不断独立出去,并因此成立了很多开源社区,今天就来学习一下! 由于 CMSIS 已经包含了相当丰富的文档,因此,本文重点学习版本之间的变化以及一些实际使用示例。 什么是…

第11章 GUI

11.1 Swing概述 Swing是Java语言开发图形化界面的一个工具包。它以抽象窗口工具包&#xff08;AWT&#xff09;为基础&#xff0c;使跨平台应用程序可以使用可插拔的外观风格。Swing拥有丰富的库和组件&#xff0c;使用非常灵活&#xff0c;开发人员只用很少的代码就可以创建出…

2024年还在持续热门的头像壁纸项目,取图小程序是怎么搭建的,头像壁纸项目为什么还在持续有在发展分析看文

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、壁纸取图小程序项目为什么可以这么久还能兴起&#xff1f; 二、壁纸取图小程序功能介绍 1.功能介绍 总结 前言 兴起了好几年的壁纸取图小程序项目目…

【leetcode题解C++】51.N皇后 and 76.最小覆盖子串

51. N皇后 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方…

OpenGL学习——15.投光物_聚光

前情提要&#xff1a;本文代码源自Github上的学习文档“LearnOpenGL”&#xff0c;我仅在源码的基础上加上中文注释。本文章不以该学习文档做任何商业盈利活动&#xff0c;一切著作权归原作者所有&#xff0c;本文仅供学习交流&#xff0c;如有侵权&#xff0c;请联系我删除。L…

《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)

文章目录 10.1 构建微服务架构 - 探索 Go 语言的微观世界10.1.1 基础知识讲解10.1.2 重点案例&#xff1a;订单处理系统订单服务测试服务 10.1.3 拓展案例 1&#xff1a;用户认证服务安装所需的包实现用户模型和存储实现 JWT 生成和验证实现认证服务测试服务 10.1.4 拓展案例 2…

166基于matlab的通过峭度指标与互相关系数筛选IMF进行SVD分解去噪

基于matlab的通过峭度指标与互相关系数筛选IMF进行SVD分解去噪&#xff0c;分辨虚假imf&#xff0c;提取最大峭度imf图。输出去噪前后时域及其包络谱结果。程序已调通&#xff0c;可直接运行。 166 matlab SVD去噪 IMF筛选 包络谱 (xiaohongshu.com)

C语言题目:一些简单的编程和递归题目

以下的题目的较难的点都在注释里面讲解清楚了 一. 1.喝汽水&#xff0c;1瓶汽水1元&#xff0c;2个空瓶可以换一瓶汽水&#xff0c;给20元&#xff0c;可以喝多少汽水&#xff08;编程实现&#xff09;。 代码实现&#xff1a; int main() {int money 20;int price 1;int e…

PyCharm 格式化代码 (Reformat Code)

PyCharm 格式化代码 [Reformat Code] 1. Ctrl A2. Code -> Reformat Code (自动调整代码格式 - 自动规范化代码)References 1. Ctrl A 全选代码。 2. Code -> Reformat Code (自动调整代码格式 - 自动规范化代码) 格式化快捷键为 Ctrl Alt L&#xff0c;但是和锁屏…

【Python】【Pycharm】Python Script头文件设置

1、步骤&#xff1a;File->settings->Editor->File and CodeTemplates->Python Script 2、复制粘贴以下代码&#xff0c;应用即可&#xff1a; #!/usr/bin/env python# -*- coding: utf-8 -*-# Time :${DATE} ${TIME}# Author : admin# Site :${SITE}# Fi…

docker (七)-部署容器

实战开始&#xff1a; 1 docker 部署 kafka 集群&#xff0c;并验证 参考 Docker搭建Kafka集群 优秀文档 2 docker 部署 mysql 参考上一篇docker(六) 3.docker 部署 zabbix 参考 docker部署zabbix 优秀文档 BUG&#xff1a;根据这篇文章部署后&#xff0c;发现zabbix-s…

git相关内容

一.git安装 该操作相信不用介绍了&#xff0c;为什么用yum&#xff0c;大家也是非常清楚的。 如果是root账户&#xff1a;yum -y install git 如果是普通账户&#xff1a; sudo yum -y install git 二.git和gitee/github区别 Git&#xff08;读音为/gɪt/&#xff09;是一个…

【以解决】Pyinstaller打包报错IndexError: tuple index out of range

问题 这个问题主要是在Python3.7以上的版本中遇到&#xff0c;用pyinstaller打包的时候发现报错 (pyinstallerEnv) D:\virtualEnv\pyinstallerEnv\Scripts>auto-py-to-exe pygame 2.5.2 (SDL 2.28.3, Python 3.10.0) Hello from the pygame community. https://www.pygame…

鸿蒙开发(七)添加常用控件(上)

开工大吉&#xff01;相信大家已经对鸿蒙开发的布局有了基本的了解。之前我们提到过&#xff0c;一个好的UI&#xff0c;离不开选择合理的布局。当然&#xff0c;也离不开适当的控件。本篇文章&#xff0c;带着大家一起学习下如何在页面里面添加常用的控件。由于控件较多&#…

【开源】JAVA+Vue.js实现城市桥梁道路管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统&#xff0c;支持…

Python编程中的异常处理

什么是异常&#xff1f; 程序错误&#xff08;errors&#xff09;有时也被称为程序异常&#xff08;exceptions&#xff09;&#xff0c;这是每个编程人员都会经常遇到的问题。在过去&#xff0c;当遇到这类情况时&#xff0c;程序会终止执行并显示错误信息&#xff0c;通常是…

纪念自己挖到的第一个CNVD证书

前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 做了那…

高级编程(2)

今天主要讲一下这四个函数接口&#xff1a;fwrite、fread、fprintf、fsancf以及流的定位&#xff1a;ftell、rewind、fseek 函数接口 fwrite fwrite: size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); 功能: 向流中写入number个对象,每个对象…

java 课程签到管理系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

一、源码特点 java 课程签到管理系统是一套完善的java web信息管理系统 采用serlvetdaobean&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0…

【漏洞复现】蓝网科技临床浏览系统信息泄露漏洞

Nx01 产品简介 蓝网科技临床浏览系统是一个专门用于医疗行业的软件系统&#xff0c;主要用于医生、护士和其他医疗专业人员在临床工作中进行信息浏览、查询和管理。 Nx02 漏洞描述 蓝网科技临床浏览系统存在信息泄露漏洞&#xff0c;攻击者可以利用该漏洞获取敏感信息。 Nx03…