(汇编) 基于VS的x86汇编基础指令

news/2024/2/27 12:14:29

文章目录

  • 环境
  • 汇编基础
    • 标志位
    • 常用指令
  • vs配置
  • END

环境

visual studio 选择x86运行

示例代码

/**
| 32位 | 16位 | 高8位 | 低8位 |
| ---- | ---- | ----- | ----- |
| EAX  | AX   | AH    | AL    |*/
#include <iostream>int main() {int32_t x = 1;int32_t y = 2;// 简单加法示例__asm {mov eax, x;mov ebx, y;add eax, ebx;mov x, eax;};::std::printf("x = %d y = %d\n", x, y);return 0;
}

汇编基础

标志位

# visual studio 中的标志位
# OV UP EI PL ZR AC PE CY
  • OV 溢出
    • 超出表示范围为溢出 1,否则 0
  • UP 增量
    • 1:以递减顺序对数据串处理;0:以递增顺序对数据串处理
  • EI 允许中断
    • CPU允许中断1,否则0
  • PL 正
    • 运算结果为正则为1,否则0
  • ZR 零
    • 运算结果为0则为1,否则0
  • AC 辅助进位
    • 低4位向高位进位1,否则0
  • PE 奇偶校验
    • 最低16位中含1的个数为偶数为1,否则0
  • CY 进位
    • 最高位进位1,否则0

常用指令

此处介绍汇编的常用基础指令,不做过多展开,仅记录基本含义

指令作用e.g.
add加法add eax, ebx;
and按位与操作and eax, ebx;
call下一条指令地址入栈,跳到目标进行指令执行call 地址;
cmp操作数1-(符号扩展)操作数2
不保存,观察标志位
cmp eax, ebx;
dec自减dec eax;
div除法
结果,余数 (不同参数不同)
div bx;
imul乘法
(不同参数不同)
imul eax, ebx, ecx;
inc自增inc eax;
jmp跳转这是一系列指令
lea加载地址lea eax, 地址;
movmov eax, 114514;
movsd双精度赋值到寄存器
movss但精度数赋值到浮点寄存器
movsx/movsxd符号扩展传输
movs系列批量内存传输
movzx0扩 展传输
neg取反(±)neg eax;
not按位取反not eax;
or按照位或or eax, ebx;
pop及相关出栈pop eax;
push及相关入栈push eax;
rcl循环左移
最高位到cf,cf移入最低位
rcl eax, 次数;
rcr循环右移
cf填入最高位,最低位填入cf
rcr eax, 次数;
ret从栈中恢复地址ret ;
rol循环左移
最高位到cf和最低位,cf原值丢弃
rol eax, 次数;
ror循环右移
最低位填入最高和cf
ror eax, 次数
sar算数右移
符号位保留
sar eax, 数值;
shr逻辑右移
高位补0
shr eax, 次数
sub减法sub eax, ebx;
test按位与
不保存,观察标志位
cmp eax, ebx;
xor按位异或xor eax, ebx;

vs配置

寄存器

进入debug模式后,在顶部调试->窗口->寄存器

反汇编

在编辑界面,右击->转到反汇编

进入后右击选择显示具体信息

检测变量

注意设置不开优化




END


http://www.ppmy.cn/news/84216.html

相关文章

多模态对话语言模型-VisualGLM-6B

多模态对话语言模型-VisualGLM-6B 一、简介二、使用模型推理三、部署工具网页版 DemoAPI部署四、example五、交流一、简介 VisualGLM-6B 是一个开源的,支持图像、中文和英文的多模态对话语言模型,语言模型基于 ChatGLM-6B,具有 62 亿参数;图像部分通过训练 BLIP2-Qformer 构…

多地住建局推广工程资料电子化,帮助工程企业“降本增效”

工程资料签署和管理是每个在建工程绕不开的课题&#xff0c;庞大的签署量、动则几十万的签署成本如何优化&#xff1b;有关部门的合规审查如何过关…纸质工程资料需要面对的难题还有很多&#xff1a; 麻烦&#xff1a;从工程立项申报、审批、设计、施工到验收等全过程中产生的大…

如何使用Python和wxPython构建一个HTML Title提取工具

以下代码可以用于以下场景&#xff1a; 在Web开发中&#xff0c;获取网页中的Title内容&#xff0c;以用于页面SEO。在数据挖掘和分析中&#xff0c;获取包含Title信息的HTML页面&#xff0c;以进行进一步的文本处理和分析。在一些需要从HTML源代码中获取元数据的应用中&#…

最全iOS 上架指南

一、基本需求信息。 1、苹果开发人员账户&#xff08;公司已经可以无需申请&#xff0c;需要开启开发者功能&#xff0c;每年99美元&#xff09; 2、开发好应用程序 二、证书 上架版本需要使用正式证书。 1、创建Apple Developer证书 2、上传证书Sign In - Apple 3、点击开发者…

【ChatGPT】不会用ChatGPT?这几个镜像网站解决你的烦恼。

个人主页&#xff1a;【&#x1f60a;个人主页】 文章目录 前言ChatGPT介绍WoChatA TalkChatGPT Next WebAI EDUCHATGPTSITES 前言 还在为需要魔法才能与ChatGPT见上一面而叹息吗&#xff0c;今我就为大家汇总了国内能使用ChatGPT的方法。 也就是用国内的镜像网站玩ChatGPT&…

AI别来搅局,ChatGPT的世界不懂低代码

ChatGPT单月访问量再创新高 根据SimilarWeb统计&#xff0c;ChatGPT上月全球访问量17.6亿次&#xff0c;已超越必应、鸭鸭走DuckDuckGo等其他国际搜索引擎&#xff0c;并达到谷歌的2%&#xff0c;百度的60%。 这会&#xff0c;程序员失业的段子又得再来一遍了&#xff1a; 拖…

vue3依赖注入

props逐级透传问题&#xff1a;父组件向子组件传递数据时用props&#xff1b;如果父组件要传递数据给孙子组件&#xff0c;那么需要父组件props传递给子组件&#xff0c;子组件再把props传递给孙子组件&#xff1b;这样沿着组件链传递下去&#xff0c;非常麻烦。 provide和inj…

关于宝塔部署jar包和war包

文章目录 前言一、jar包部署二、war包部署1.maven如果打包不了使用命令打包2.安装Tomcat进行访问是否成功2.进入Tomcat目录进行配置war包 一、项目访问方法 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、jar包部署 1.其实jar包没什么讲的&…

【问题记录】flask开发blog

文章目录 小知识点问题1. 文章标签显示错误2. 文章状态无法回显&#xff08;open)3. 用户管理页面&#xff0c;图标无法显示4. BuildError5. 用户管理添加用户&#xff0c;使用重复的用户名会报错(open)6. 添加用户&#xff0c;不上传头像会报错(open)7. 部分标签删除时报错&am…

水处理计算常用表格大全

第二章 设计方案城市污水处理厂的设计规模与进入处理厂的污水水质和水量有关&#xff0c;污水的水质和水量可以通过设计任务书的原始资料计算。2.1 厂址选择在污水处理厂设计中&#xff0c;选定厂址是一个重要的环节&#xff0c;处理广的位置对周围环境卫生、基建投资及运行管理…

当互联网的红利不再,更多人开始寻找新的发展方式和方法

当互联网的红利不再&#xff0c;玩家们开始寻找新的发展方式和方法。无论是头部的玩家&#xff0c;还是新入局的玩家&#xff0c;几乎都是如此。   在这个过程中&#xff0c;有人将目光聚焦在了新技术的身上&#xff0c;有人将目光聚焦在了新模式的身上&#xff0c;有人则是将…

Py06·爬虫

Py06爬虫 pyhon3爬虫filddler抓包工具robots.txt 文件Sitemap.xml 文件反爬虫爬虫测试 pyhon3爬虫 1.缺点&#xff1a;解释性语言&#xff1b;执行效率低 2.优点&#xff1a;网络接口简单医用&#xff1a;系统自带urllib&#xff0c;第三方requets都很简单数据解析容易&#x…

使用RSD从DEM数据创建用户高程数据层

李国春 SRTM90和Aster DEM的V2/V3是比较常用的免费共享高程数据。用户下载好以后应用到自己的项目时&#xff0c;经常会需要进行拼接合成和投影重采样等。RSD提供了一种创建自己项目的高程数据的方法。 一. 高程图像生成方法 在自己的项目中&#xff0c;选择图1的菜单。 图1…

项目压测相关

几个重要指标的关系 QPS 并发数/平均响应时间 并发数 QPS*平均响应时间 也就是说&#xff0c;并发连接数代表服务器抗压能力&#xff0c;接收连接的能力。qps代表在相同的并发数下&#xff0c;服务器处理的速度&#xff0c;响应时间越短&#xff0c;那么qps就越大。 不是说并发…

结构体总结

目录 1.普通结构体 2.定义结构体并同时建立变量 3.匿名结构体 4.typedef重命名 5.typedef省略结构体名字 6.结构体数组 7.结构体指针 8.结构体嵌套 9.结构体链表&#xff08;头插法&#xff09; 10.结构体中的函数指针 11.结构体的构造函数和初始化列表 1.普通结构体 stru…

小白入门SRC漏洞挖掘的正确姿势

前言 有不少阅读过我文章的伙伴都知道&#xff0c;我从事网络安全行业已经好几年&#xff0c;积累了丰富的经验和技能。在这段时间里&#xff0c;我参与了多个实际项目的规划和实施&#xff0c;成功防范了各种网络攻击和漏洞利用&#xff0c;提高了安全防护水平。 也有很多小…

Linux:Firewalld防火墙

Linux&#xff1a;Firewalld防火墙 一、Firewanlld防火墙概述二、Firewalld和Iptables的关系三、Firewalld网络区域3.1 Firewalld 区域的概念&#xff1a;3.2 firewalld防火墙预定义了9个区域3.3 firewalld数据处理流程 四、Firewalld防火墙的配置方法五、Firewalld-config图形…

计算机组成原理知识点

循环冗余校验码是什么&#xff1f;多项式除法呢&#xff1f;数据信息如何利用多项式除法进行计算&#xff1f; ChatGPT: 循环冗余校验码&#xff08;Cyclic Redundancy Check&#xff0c;CRC&#xff09;是一种在数据传输过程中常用的错误检测技术。它通过在发送数据时添加冗余…

云原生之部署Docker管理面板SimpleDocker

云原生之部署Docker管理面板SimpleDocker 一、SimpleDocker介绍1. SimpleDocker简介2. SimpleDocker特点 二、本地环境介绍1. 本地环境规划2. 本次实践介绍 三、本地环境检查1.检查Docker服务状态2. 检查Docker版本3.检查docker compose 版本 四、下载SimpleDocker镜像五、部署…

调用百度API自动生成春联

目录 1、作者介绍2、百度智能春联介绍录2.1 功能介绍2.2 技术特色 3、智能春联API接口介绍3.1 请求参数3.2 返回参数 4. 操作流程5. 代码实现 1、作者介绍 范宇帅&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2022级研究生 研究方向&#xff1a;多机器人协…
最新文章