汇编语言基础

目录

基本套路

头部:

段: 

函数:

导入masm32库

输入输出

加法指令

常见数据类型

定义数据类型

数据传达指令(mov)

加减法

常用伪指令

间接寻址

JMP和LOOP

堆栈操作

定义函数(ret,call)

位运算

jcc(跳转指令)

条件语句(伪指令)

乘法

字符串

结构体与宏

内联汇编

基本套路

头部:

段: 

.data:已经初始化的数据

.data? 未初始化的数据

.const: 常量数据

.code:代码段

.stack:堆栈段,可读可写可执行

函数:

main是自行定义的入口函数名称 

导入masm32库

INVOKE是伪指令,可以避免使用完整的汇编指令,简化代码。上面两图的效果相同。

db类似c语言的char类型。

ExitProcess是退出进程。

add esp,16的目的是为了保持堆栈平衡:

输入输出

输出/入的依赖库是msvcrt.lib 

text2作为接受输入的参数,format作为输入的格式化 

加法指令

mov eax,5 把5这个值放到eax寄存器里面,add eax,6 将6与eax里的值相加并将结果放到eax里。

常见数据类型

定义数据类型

 数组

数组初始化

数组赋值

数据传达指令(mov)

mov的五种常见类型:

不能把大的数据mov到小的存储空间中(mov reg16 mem32是不合法的)

加减法

dec--:(结果为5)

inc++: 

常用伪指令

间接寻址

因为DWORD类型占4个字节,所以esi*4,取到var的4这个元素。

JMP和LOOP

jmp类似goto关键字,执行跳转。

loop可以通过ecx的值决定循环次数。

堆栈操作

定义函数(ret,call)

uses是伪指令,后面跟上函数的参数。


位运算

异或(xor),将结果放到第一个操作数里。

与(or) ,或(and),逻辑非(not)

jcc(跳转指令)

 

je为相等就跳转。

条件语句(伪指令)

.if是伪指令,.endif是结尾。

while循环

乘法

8位的乘法(al,bl)

16位乘法(bx,ax),乘法高位结果放到edx里。低位放到eax里。

 

32位由ebx和eax作为乘数和被乘数。

字符串

传送(赋值):

rep指的是循环执行,由ecx决定次数,类似loop。

比较:

扫描

结构体与宏

宏:(MACRO后面接形参)

内联汇编

使用_asm关键字。

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

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

相关文章

React (三)

文章目录 项目地址十二、性能优化12.1 使用useMemo避免不必要的计算12.2 使用memo缓存组件,防止过度渲染12.3 useCallBack缓存函数12.4 useCallBack里访问之前的状态(没懂)十三、Styled-Components13.1 安装13.2给普通html元素添加样式13.3 继承和覆盖样式13.4 给react组件添…

MD5算法的学习

MD5_百度百科 MD5信息摘要算法(Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位的(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美…

【虚拟机】VMWare的CentOS虚拟机断电或强制关机出现问题

VMware 虚拟机因为笔记本突然断电故障了,开机提示“Entering emergency mode. Exit the shell to continue.”,如下图所示: 解决方法:输入命令: xfs_repair -v -L /dev/dm-0 注:报 no such file or direct…

【论文阅读】WGSR

0. 摘要 0.1. 问题提出 1.超分辨率(SR)是一个不适定逆问题,可行解众多。 2.超分辨率(SR)算法在可行解中寻找一个在保真度和感知质量之间取得平衡的“良好”解。 3.现有的方法重建高频细节时会产生伪影和幻觉,模型区分图像细节与伪影仍是难题。 0.2. …

解决 Android 单元测试 No tests found for given includes:

问题 报错: Execution failed for task :testDebugUnitTest. > No tests found for given includes: 解决方案 1、一开始以为是没有给测试类加public修饰 2、然后替换 Test 注解的包可以解决,将 org.junit.jupiter.api.Test 修改为 org.junit.Tes…

服务机器人三甲坎德拉:用智能化开启售后服务新篇章

随着市场需求快速增长,专注自动驾驶服务机器人研发的坎德拉近年来实现了快速发展,并且通过技术创新与优质服务收获了良好口碑。为了不断提升售后服务质量和客户服务水平,坎德拉与新一代智能客户服务解决方案提供商售后宝共同打造智能化的售后…

3D建筑模型的 LOD 规范

LOD(细节层次) 是3D城市建模中用于表示建筑模型精细程度的标准化描述不同的LOD适用于不同的应用场景 LOD是3D建模中重要的分级标准,不同层级适合不同精度和用途的需求。 从LOD0到LOD4,细节逐渐丰富,复杂性和精度也逐…

递归------深度优先搜索

深度优先搜索(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。它从一个顶点开始,尽可能深地搜索树的分支。深度优先搜索沿着一条路径深入,直到无法继续为止,然后回溯并尝试其他路径。这种搜…

蓝桥杯c++算法学习【5】之枚举与模拟(卡片、回文日期、赢球票、既约分数:::非常典型的比刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵!!!! ! ! !!! 关注博主,更多蓝桥杯nice题目静待更新:) 枚举与模拟 一、卡片: 【问题描述】 小蓝有很多数字卡片,每张卡片上都…

相机网卡开启巨型帧和关闭节能模式方法

2022 年 8 月 2 日 Tank 阅读次数(ip/1年): 26,796 win10为例子 首先在开始菜单搜索:网络连接 对想要设置的网络右键:属性 点 配置 高级里面找到这三个选项,参考下图设置,螃蟹网卡建议关掉所有节能有关的…

Windows server2016设置多用户界面——保姆级教程

在 Windows Server 2016 服务器中,通常默认情况下能够支持两个用户进行远程登录。而通过在服务器上安装远程桌面服务中的远程桌面会话主机和远程桌面授权,并对其进行相应配置,便可以实现多用户远程登录。 远程桌面服务是一种由若干角色服务所…

第一个autogen与docker项目

前提条件:在windows上安装docker 代码如下: import os import autogen from autogen import AssistantAgent, UserProxyAgentllm_config {"config_list": [{"model": "GLM-4-Plus","api_key": "your api…

后端开发详细学习框架与路线

🚀 作者 :“码上有前” 🚀 文章简介 :后端开发 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 为帮助你合理安排时间,以下是结合上述学习内容的阶段划分与时间分配建议。时间安排灵活&a…

【Isaac Sim】相关问题汇总

目录 一、安装点击Install时报错二、启动时报 Failed to create any GPU devices三、加载Isaac Sim自带模型或示例时报 Isaac Sim is not responding 一、安装点击Install时报错 报错: request to https://asset.launcher.omniverse.nvidia.com/… failed, reason:…

社团管理智能化:SpringBoot技术

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

【C++】继承(inheritance)

引入 假设我们有一个动物类 class Animal { public:int age;void eat() {std::cout << "吃东西&#xff01;" << std::endl;} };又想写一个狗类&#xff0c;它也有年龄&#xff0c;也会吃&#xff0c;除此之外还有种类 class Dog { public:const char…

Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二)

Oracle - 多区间按权重取值逻辑 &#xff0c;分时区-多层级-取配置方案https://blog.csdn.net/shijianduan1/article/details/133386281 某业务配置表&#xff0c;按配置的时间区间及组织层级取方案&#xff0c;形成报表展示出所有部门方案的取值&#xff1b; 例如&#xff0…

电子应用设计方案-19:智能云饭锅系统方案设计

智能云饭锅系统方案设计 一、系统概述 本智能云饭锅系统旨在提供便捷、个性化和智能化的烹饪体验&#xff0c;结合云服务实现远程控制、食谱推荐和烹饪数据管理等功能。 二、系统组成 1. 锅体 - 采用高品质的不粘涂层内胆&#xff0c;确保米饭受热均匀且易于清洁。 - 具备良好…

镁光MT25QU01GXXX norflash调试笔记

目录 前言一、芯片概述二、数据手册解释1. 数据手册获取2.内容概括 三、几个操作的代码1.复位芯片操作2.读取芯片ID3.擦除芯片扇区4.向芯片存入数据5.读取存储的数据6.其它操作函数 前言 本笔记总结如何使用MCU对nor flash进行数据存储&#xff0c;包括芯片基本介绍&#xff0…

Qt界面设计时使各控件依据窗口缩放进行栅格布局的方法

图1 最终效果 想要达成上述图片的布局效果&#xff0c;具体操作如下&#xff1a; 新建一窗体&#xff1a; 所需控件如下&#xff1a; Table View控件一个&#xff1b; Group Box控件一个&#xff1b; Push Button控件2个&#xff1b; Horiziontal Spacer控件2个&#xf…