【汇编笔记】初识汇编-内存读写
汇编语言的由来:
CPU是计算机的核心,由于计算机只认识二进制,所以CPU执行的指令是二进制。
我们要想让CPU工作,就得给他提供它认识的指令,这一系列的指令的集合,称之为指令集。
指令集:
不同的体系的CPU使用的是不同的指令集,常见的有intel、AMD的X86结构CPU使用的是X86/X64指令集,ARM结构CPU使用的是ARM指令集。
汇编指令和机器指令的差别在于指令的表示方法上,汇编指令与机器指令是一一对应的。
理解CPU工作方式:
CPU整体的工作分为3类:
- 读取指令
- 指令译码
- 执行单元(计算、读写内存、设置寄存器、跳转)
读取指令、内存读写都需要CPU控制其他硬件,比如:内存、显卡等
指令格式:
指令由操作码和操作数两部分组成。
操作数是指令执行的参与者,分三种
寄存器、内存地址、立即数
例如:
MOV EAX,0X123
MOV 操作码,目的操作数,源操作数
寄存器:
CPU不仅仅只能进行运行,它还有许多存储器,具有存储功能,可以存储一些diam运行时 的临时信息,他们被称为寄存器。
32位通用寄存器:

4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI)
2个指针寄存器(ESP和EBP)
打开OD工具 随便打开一个exe文件
查看右则寄存器窗口

EIP 表示程序该执行哪一行
对应左侧被标记的地址

操作八个通用寄存器
双击地址后的汇编代码 编辑

修改后 点击步过按钮 或 按F8执行


寄存器的值被修改
被标记的地址进入下一行
EIP同步
内存读写
其他寄存器


只有AX、CX、DC、BX相当于32位的砍一半
再砍一半分为8位的 前一半AH、后一半AL
演示:
初始值

后半变成5555

5555的前一半变成22

5555的后一半变成33

注意编辑时取消保持大小复选框

取寄存器的值


内存大小
BYTE 一字节
WORD 两字节
DWORD四字节
读内存地址的值给寄存器

生成的汇编

PTR表示数据段
执行结果(右下角可看到内存地址的数值)

读取两个字节


写内存 演示

不能全部都是内存地址

直接插入数值 演示



相关文章:
【汇编笔记】初识汇编-内存读写
汇编语言的由来: CPU是计算机的核心,由于计算机只认识二进制,所以CPU执行的指令是二进制。 我们要想让CPU工作,就得给他提供它认识的指令,这一系列的指令的集合,称之为指令集。 指令集: 不同的体…...
Shell脚本通过渗透测试检测服务器安全!
以下是一个简单的 Shell 脚本通过渗透测试来发现服务器漏洞的例子: #!/bin/bash # 设置变量 server_url"http://example.com" server_port"80" script_path"/path/to/script.脚本" # 创建并打开 Web 服务器 web_server$(curl -s $se…...
数据结构--查找
目录 1. 查找的基本概念 2. 线性表的查找 3. 树表的查找 3.1 二叉排序树 3.1.1 定义: 3.1.2 存储结构: 3.1.3 二叉排序树的查找 3.1.4 二叉排序树的插入 3.1.5 二叉排序树删除 3.2 平衡二叉树(AVL 3.2.1 为什么要有平衡二叉树 3.2.2 定义 3.3 B-树 3.3.1…...
IntelliJ IDEA Apache Dubbo,IDEA 官方插件正式发布!
作者:刘军 最受欢迎的 Java 集成开发环境 IntelliJ IDEA 与开源微服务框架 Apache Dubbo 社区强强合作,给广大微服务开发者带来了福音。与 IntelliJ IDEA 2023.2 版本一起,Jetbrains 官方发布了一款全新插件 - Apache Dubbo in Spring Frame…...
使用Visual Studio 2022 winform项目打包成安装程序.exe
winform项目打包 1.安装扩展插件 Microsoft Visual Studio Installer Projects 20222.在解决方案上新建一个setup project 项目3.新建成功如下图,之后添加你的winform程序生成之后的debug下的文件4.在Application Folder上点击右键->Add->项目输出->主输出…...
报错-idea pom.xml 有一条灰色横线
1. 背景 打开 idea 更新代码,发现有个 module 的 pom.xml 有一条灰色横线,导致这个 module 没有加载成功。 2. 原因 1) 可能本地 Remove 了这个 module 2)本地删除了这个 module ,又从远端拉取了回来 3)…...
openmediavault(OMV) (19)云相册(3)mt-photos
简介 MT Photos是一款为Nas用户量身打造的照片管理系统。通过AI技术,自动将您的照片整理、分类,包括但不限于时间、地点、人物、照片类型。可以在任何支持Docker的系统中运行它。详情可查看mtmt.tech官网,mt-photos是付费订阅使用的,也可以一次性付费永久使用,具体使用mt…...
基于openGauss5.0.0全密态数据库等值查询小案例
基于openGauss5.0.0全密态数据库等值查询小案例 一、全密态数据库简介二、环境说明三、测试步骤四、使用约束 一、全密态数据库简介 价值体现: 密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传…...
Oracle中varchar2和nvarchar2的区别
Oracle中的varchar2和nvarchar2都是可变长度的字符数据类型,这意味着它们能够根据实际存储的数据长度来动态调整占用的空间。但它们之间有以下主要区别: 1. 字符编码和存储: - VARCHAR2:存储的是字节字符串,对字符…...
linux环境下从一个服务器复制文件到另一个服务器
在Linux中使用scp命令可以将文件或目录从一台服务器复制到另外一台服务器。 # 从源服务器复制文件到目标服务器 scp /path/to/source_file usernamedestination:/path/to/destination_directory # 从源服务器复制目录及其内容到目标服务器 scp -r /path/to/source_directory us…...
JSoup 爬虫遇到的 404 错误解决方案
在网络爬虫开发中,使用JSoup进行数据抓取是一种常见的方式。然而,当我们尝试使用JSoup来爬虫抓取腾讯新闻网站时,可能会遇到404错误。这种情况可能是由于网站的反面爬虫机制检测到了我们的爬虫行为,从而拒绝了我们的请求。 假设我…...
Vue.set 方法原理
function set(target, key, value) {// 判断是否是数组,并且 key 是一个有效的索引值if (Array.isArray(target) && isValidArrayIndex(key)) {target.length Math.max(target.length, key)target.splice(key, 1, value)return value}// 判断 key 是否已经…...
CentOS 7的新特性
CentOS 7在发布时相较于CentOS 6引入了许多重要的变化和优化。以下是一些主要的改进和新特性: 系统初始化程序:CentOS 7使用了systemd作为其初始化系统,取代了之前版本的init系统。systemd提供了更快的启动时间和更好的管理服务。 内核更新&…...
Vue 模板编译原理
Vue 模板编译原理是指将 Vue 的模板转换为渲染函数的过程。在 Vue 中,模板被定义为 HTML 代码片段或者在 .vue 单文件组件中定义。当 Vue 实例化时,会将模板编译为渲染函数,该函数可以根据组件的状态生成虚拟 DOM 并更新视图。 Vue 的模板编…...
ElementUI的Table组件行合并上手指南
ElementUI的Table组件行合并 ,示例用官网vue3版的文档 <el-table :data"tableData" :span-method"objectSpanMethod" border style"width: 100%; margin-top: 20px"><el-table-column prop"id" label"ID&qu…...
【ES6】Class继承-super关键字
目录 一、前言二、ES6与ES5继承机制区别三、super作为函数1、构造函数this1)、首先要明确this指向①、普通函数②、箭头函数③、注意事项 2)、其次要明确new操作符做了哪些事情 2、super()的用法及注意点1)、用法2)、注意点 四、s…...
做亚马逊测评不知道怎么找客户?这才是亚马逊测评的正确打开方式!
如今的跨境电商内卷严重,花费大量资金做广告推广的效果却微乎其微,这也是亚马逊测评迅速崛起的最根本原因。做亚马逊测评是近年来兴起的一种方式,许多卖家都需要大量的测评来提高自己的产品排名和信誉度。很多兄弟最近来问龙哥亚马逊测评怎么…...
传感器基础:传感器使用与编程使用(三)
目录 常用传感器讲解九--雨滴传感器具体讲解电路连接代码实现 常用传感器讲解十--光传感器根据亮度安排灯具体讲解电路连接代码实现 常用传感器讲解七--light cup(KY-008)具体讲解电路连接代码实现 常用传感器讲解十二--倾斜开关传感器(KY-02…...
深入浅出:分布式、CAP 和 BASE 理论(荣耀典藏版)
大家好,我是月夜枫,一个漂泊江湖多年的 985 非科班程序员,曾混迹于国企、互联网大厂和创业公司的后台开发攻城狮。 在计算机科学领域,分布式系统是一门极具挑战性的研究方向,也是互联网应用中必不可少的优化实践&…...
vue3+elementPlus:el-drawer新增修改弹窗复用
在el-drawer的属性里设置:title属性,和重置函数 //html<!-- 弹窗 --><el-drawerv-model"drawer":title"title":size"505":direction"direction":before-close"handleClose"><el-formlabel-posit…...
AI服务先看工作流
很多人买 AI 服务时,还是按买会员的方式看:哪个模型名气大,哪个月费便宜,哪个 Token 多。这个习惯很自然,但它很容易把钱花在用不起来的地方。 最近几个问题放在手边看,会发现同一个提醒。手机店卖不动新机…...
从“会响”到“可靠”:给这个经典12V降5V电路加个二极管和电容,稳定性提升不止一点点
从“会响”到“可靠”:经典12V降5V电路的稳定性优化实战 当你在面包板上搭建好那个经典的稳压管NPN降压电路,看着万用表显示稳定的5V输出时,或许会感到一丝成就感。但当你接上负载,发现电压开始波动,或者在电源反接时闻…...
Perplexity股票数据清洗SOP(含NASDAQ非标字段映射表):金融工程师内部使用的12项校验规则
更多请点击: https://codechina.net 第一章:Perplexity股票信息检索 Perplexity AI 公司尚未上市,因此不存在公开交易的股票代码、实时行情或交易所挂牌信息。这一事实常被开发者和投资者误读,尤其在使用金融数据 API 时容易触发…...
2026亚洲消费电子展6月来袭,观众预登记
2026亚洲消费电子展筹备工作进入关键阶段,本届展会定于2026年6月10日至12日在北京举办,运营方赛逸品牌管理有限公司正式对外宣布,展会专业观众线上预约通道同步启动,行业采购人士、技术从业者及科研机构可提前完成预登记ÿ…...
SWAT建模效率翻倍:利用ArcGIS模型构建器自动化处理HWSD土壤数据全流程
SWAT建模效率革命:ArcGIS模型构建器全自动处理HWSD土壤数据实战指南 当你在凌晨三点盯着屏幕上第七次重复运行的"Extract by Mask"工具,看着进度条缓慢爬升时,是否想过这些机械化的操作本可以一键完成?本文将为中高级SW…...
C++11多线程与线程管理
一、线程基础 1.1 thread默认构造函数 std::thread::thread() _NOEXCEPT {_Thr_set_null(_Thr); }默认构造函数创建一个空线程对象,不关联任何执行线程。 1.2 thread带参数构造函数 explicit thread(Fn &&, Args &&...);可变参数模板,可…...
Visual C++运行库合集:解决Windows程序依赖的终极方案
Visual C运行库合集:解决Windows程序依赖的终极方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否遇到过这样的烦恼?刚下载了一个…...
如何快速配置PlotSquared:Minecraft领地管理完整教程
如何快速配置PlotSquared:Minecraft领地管理完整教程 【免费下载链接】PlotSquared PlotSquared - Reinventing the plotworld 项目地址: https://gitcode.com/gh_mirrors/pl/PlotSquared 你是否厌倦了Minecraft服务器中混乱的建筑和领地冲突?想要…...
Cadence IC617工艺库安装避坑指南:从CDB转OA到解决analoglib丢失,手把手搞定
Cadence IC617工艺库安装全流程解析:从环境配置到疑难排错 第一次打开Cadence IC617的Library Manager却找不到analoglib基础库?明明按照教程操作却卡在CDB转OA的环节?这些问题往往源于对Cadence环境架构的理解偏差。本文将带您深入理解Caden…...
别再只盯着USB3.0速度了!深入链路训练状态机(LTSSM),搞懂设备插上后到底经历了什么
USB3.0链路训练状态机:从插入到识别的技术全景解析 当我们将一个USB3.0设备插入电脑时,那个短暂的"识别"过程背后,隐藏着一套精密的数字握手协议。这个看似简单的动作,实际上触发了物理层到协议层的多阶段协同工作&…...
