【汇编】_Visual Studio2019写32位汇编

news2024/11/25 11:07:07

目录

第一步:创建新项目

1. 空项目—下一步

2. 选择位置—填写项目名—创建

第二步:项目生成依赖项

1. 右击项目名—生成依赖项—生成自定义

2. 选中masm—确定

第三步:创建源文件

1. 源文件—添加—新建项

2. 选择C++文件—创建新文件令其后缀为.asm

第四步:编写源文件

第五步:配置解决方案平台

1. 右击解决方案—属性

2. 配置属性—属性

第六步:查看.asm文件属性

1. 右击.asm文件—属性

2. Command Line—检验是否为ml.exe

第七步:断点调试查看内存与寄存器

1. 打断点—调试—开始调试

2. 调试—窗口—内存(寄存器)

3. 手动增加待查看寄存器

4. 查看程序中变量的地址


第一步:创建新项目

1. 空项目—下一步

选择创建空项目,选择完毕后点击下一步:

2. 选择位置—填写项目名—创建

第二步:项目生成依赖项

1. 右击项目名—生成依赖项—生成自定义

2. 选中masm—确定

第三步:创建源文件

1. 源文件—添加—新建项

2. 选择C++文件—创建新文件令其后缀为.asm

第四步:编写源文件

此处以hello world 程序为例:

源码如下:

.586
.MODEL flat,stdcall

includelib	msvcrt.lib

INCLUDELIB kernel32.lib
INCLUDELIB ucrt.lib
INCLUDELIB legacy_stdio_definitions.lib

ExitProcess PROTO, dwExitCode:DWORD		; return code
printf proto C: vararg

.data
	msg db 'Hello World!',13,10,0
.code
main PROC
;main:

	mov eax,10000h		; EAX = 10000h
	add eax,40000h		; EAX = 50000h
	sub eax,20000h		; EAX = 30000h

	invoke printf, offset msg
	pushad
		push offset msg
		call printf
	popad
	pushad
		;push 0h
		;call ExitProcess
		invoke ExitProcess,0
	popad

main ENDP
end main

粘贴至刚创建的源文件中即可;

第五步:配置解决方案平台

1. 右击解决方案—属性

2. 配置属性—属性

第六步:查看.asm文件属性

1. 右击.asm文件—属性

2. Command Line—检验是否为ml.exe

此处若为ml64.exe,采用的就是64位汇编,后续运行就会报错。

第七步:断点调试查看内存与寄存器

1. 打断点—调试—开始调试

2. 调试—窗口—内存(寄存器)

3. 手动增加待查看寄存器

4. 查看程序中变量的地址

在本程序中定义了字节型变量msg,此处输入&msg并回车查看其地址:

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

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

相关文章

ActiveMQ + MQTT 集群搭建(虚机版本) + Springboot使用配置

文章目录 前言一、ActiveMQ、 MQTT是什么?1.ActiveMQ介绍2.MQTT介绍 二、集群搭建步骤1.下载apache-activemq-5.15.12-bin.tar.gz2.上传apache-activemq-5.15.12-bin.tar.gz到服务器并解压文件到文件夹clusters、master、slave三个文件夹下面形成三个节点&#xff0…

配置QtCreator能加载自定义插件的环境

配置对应环境 引言查看当前版本配置能够加载插件的环境 引言 生成的自定义插件能在QtCreator的设计器中加载,需要满足当前使用的QtCreator的编译时所需的Qt库和编译器。 查看当前版本 这里需要先查看自己使用的QtCreator的版本,即生成QtCreator时使用…

17(18)-1-HTML5 新增语义标签及属性

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 ✍HTML5 新增语义标签及属性💎1 HTML5 新增的块级语义化标签&…

C语言——指针的高级引用

目录 1.概述 2.虚拟内存空间 2.1存储期限 2.2栈区管理 2.3堆区域的使用 3.动态内存分配和释放(重点) 3.1通用指针类型void 3.2内存分配malloc函数 3.2.1 malloc函数(memory allocation)(注意len*size&#xff…

SAP SD学习笔记04 - 出荷Plant(交货工厂),出荷Point(装运点),输送计划,品目的可用性检查,一括纳入/分割纳入,仓库管理

上一章讲了SD的主数据。 SAP SD学习笔记03 - SD模块中的主数据-CSDN博客 本章讲出荷Plant(交货工厂),出荷Point(装运点)和出和路线。 还是偏理论多一些,后面的文章尽量多加些练习巩固一下。 1&#xff0…

Element-UI plus 自定义-下拉框选择年份【vue3】

1.实现效果 2.实现代码展示 <template><el-select v-model"selectedYear" placeholder"请选择"><el-optionv-for"year in yearOptions":key"year":label"year":value"year"></el-option>…

实验四:基于内容的推荐

代码 import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity from sklearn.metrics.pairwise import pairwise_distances import numpy as np news_dfpd.read_csv(C:/Users/Administrat…

【Linux】开始了解重定向

送给大家一句话&#xff1a; 人真正的名字是&#xff1a;欲望。所以你得知道&#xff0c;消灭恐惧最有效的办法&#xff0c;就是消灭欲望。 – 史铁生 《我与地坛》 开始了解重定向 1 前言2 重定向与缓冲区2.1 文件描述符分配规则2.2 重定向的现象2.3 重定向的理解2.4 缓冲区…

阿里云微调chatglm3-6b---只有一个python解释器但gradio要求版本不兼容怎么办

安装LLAMA参考博文http://t.csdnimg.cn/6yYwG 在用LLAMA微调大模型的时候总是出现connected error out并且出现这样的界面 这是由于LLMA所要求的gradio版本>4.0.0,<4.2.0&#xff0c;然而chatglm3-6b要求的gradio版本需要gradio3.39.0才能显示出web_demo_gradio.py渲染…

10.1K star !牛逼了!开源技术速查表,推荐人手一份!

1、前言 在当今信息爆炸的时代&#xff0c;知识的获取、整理和应用显得尤为重要。随着个人职业发展和学习需求的不断提升&#xff0c;搭建一个个人知识库已成为提升竞争力的关键一环。个人知识库不仅是一个信息的存储库&#xff0c;更是一个思维的工具箱&#xff0c;它能够帮助…

【前缀积】Leetcode 除自身以外数组的乘积

题目解析 238. 除自身以外数组的乘积 算法讲解 我们可以使用两个空间保存当前位置的左边积和右边积&#xff0c;需要注意的地方初始的dp表需要初始化为1&#xff0c;如果是0则无法得到结果&#xff0c;因为此处是乘法 class Solution { public:vector<int> productEx…

Python用于比较数据结构并生成差异报告的工具库之data-diff使用详解

概要 Python的data-diff库是一个用于比较数据结构并生成差异报告的工具。它可以处理各种数据类型,如字典、列表、集合等,使得开发者能够快速识别数据之间的差异。 安装 通过pip可以轻松安装data-diff: pip install data-diff特性 支持多种数据类型:能够比较字典、列表、…

鸿蒙+全国产化工业平板电脑在MES系统采集终端应用

在工业4.0的大浪潮推动下,原有制造行业面临原材料及人工成本上涨、生产现场管理混乱、定单杂、生产效率难以提升、生产异常难以实时监控等诸多因素,根本无法满足数字化工厂的基本需求,更难以与工业4.0接轨。 MES系统是一套面向制造企业车间执行层的生产信息化管理 系统。MES可以…

Mac下用adb命令安装apk到android设备笔记

查询了些资料记录备用。以下是在Mac上使用命令行安装APK文件的步骤&#xff1a; 1. 下载并安装ADB&#xff1a; 如果您的Mac上没有安装ADB&#xff0c;请从官方的Android开发者网站下载Android SDK Platform Tools&#xff1a;Android SDK Platform Tools。将下载的ZIP文件解…

Centos安装MySQL提示公钥尚未安装

一、问题 在Centos7.9使用yum安装MySQL时出现错误&#xff0c;提示&#xff1a;mysql-community-server-5.7.44-1.el7.x86_64.rpm 的公钥尚未安装&#xff0c;如下图所示&#xff1a; 执行命令&#xff1a;systemctl start mysqld也提示错误&#xff1a;Failed to start mysq…

spfa算法(java代码)

题目: 851. spfa求最短路 - AcWing题库 输入样例: 3 3 1 2 5 2 3 -3 1 3 4 输出样例: 2 分析&#xff1a; 先去定义一个class 类似于c里面的pair 里面有两个变量x, y 因为后面需要用优先队列来处理最短路问题需要指出比较x还是y 因此我们让这个pair类实现 Comparable 接口 实…

IP广播对讲系统停车场解决方案

IP广播对讲系统停车场解决方案 一、需求分析 随着国民经济和社会的发展&#xff0c; 选择坐车出行的民众越来越多。在保护交通安全的同时&#xff0c;也给停车场服务部门提出了更高的要求。人们对停车场系统提出了更高的要求与挑战&#xff0c; 需要停车场系统提高工作效率与服…

如何在CentOS7.x上生成自签名SSL证书

在配置HTTPS连接时&#xff0c;SSL证书是确保数据传输安全性的关键组件。自签名证书是一种不通过证书颁发机构&#xff08;CA&#xff09;签发的证书&#xff0c;适用于测试和内部使用。以下是在CentOS 7.x系统上生成自签名证书的详细步骤。 1. 安装OpenSSL OpenSSL是一个强大…

时间案例-倒计时

需求 休息日例子 自定义日期类MyDate 日期记录是否是休息日记录是否是周末 Data NoArgsConstructor AllArgsConstructor public class MyDate {// 日期LocalDate date;// 是否休息boolean isRest;// 是否是周末boolean isWeekend; }starter启动器 // 1. 定义起始的休息时间 202…

婚纱摄影从入门到精通,专业婚礼摄影实战指南

一、资料描述 本套婚纱摄影资料&#xff0c;大小543.64M&#xff0c;共有15个文件。 二、资料目录 《婚礼摄影实战指南》苏盛鑫.全彩版.pdf 《婚礼摄影幸福攻略》.pdf 《婚纱摄影8问-拍婚纱照注意事项》【新人必看】.pdf 《婚纱摄影摆姿》 Wedding Posing.pdf 《婚纱摄影…