【汇编笔记】初识汇编-内存读写

news2025/1/19 11:28:49

汇编语言的由来:
CPU是计算机的核心,由于计算机只认识二进制,所以CPU执行的指令是二进制。
我们要想让CPU工作,就得给他提供它认识的指令,这一系列的指令的集合,称之为指令集。
指令集:
不同的体系的CPU使用的是不同的指令集,常见的有intel、AMD的X86结构CPU使用的是X86/X64指令集,ARM结构CPU使用的是ARM指令集。
汇编指令和机器指令的差别在于指令的表示方法上,汇编指令与机器指令是一一对应的。
理解CPU工作方式:
CPU整体的工作分为3类:

  1. 读取指令
  2. 指令译码
  3. 执行单元(计算、读写内存、设置寄存器、跳转)

读取指令、内存读写都需要CPU控制其他硬件,比如:内存、显卡等

指令格式:
指令由操作码和操作数两部分组成。
操作数是指令执行的参与者,分三种
寄存器、内存地址、立即数
例如:
MOV EAX,0X123
MOV 操作码,目的操作数,源操作数

寄存器:
CPU不仅仅只能进行运行,它还有许多存储器,具有存储功能,可以存储一些diam运行时 的临时信息,他们被称为寄存器。
32位通用寄存器:
image.png
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI)
2个指针寄存器(ESP和EBP)
打开OD工具 随便打开一个exe文件
查看右则寄存器窗口
image.png
EIP 表示程序该执行哪一行
对应左侧被标记的地址
image.png
操作八个通用寄存器
双击地址后的汇编代码 编辑
image.png
修改后 点击步过按钮 或 按F8执行
image.png
image.png
寄存器的值被修改
被标记的地址进入下一行
EIP同步

内存读写

其他寄存器
image.png
image.png
只有AX、CX、DC、BX相当于32位的砍一半
再砍一半分为8位的 前一半AH、后一半AL
演示:
初始值
image.png
后半变成5555
image.png
5555的前一半变成22
image.png
5555的后一半变成33
image.png
注意编辑时取消保持大小复选框
image.png

取寄存器的值
image.png
image.png

内存大小
BYTE 一字节
WORD 两字节
DWORD四字节
读内存地址的值给寄存器
image.png
生成的汇编
image.png
PTR表示数据段
执行结果(右下角可看到内存地址的数值)
image.png
读取两个字节
image.png
image.png
写内存 演示
image.png
不能全部都是内存地址
image.png
直接插入数值 演示
image.png
image.png
image.png

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

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

相关文章

PyTorch深度学习实战(28)——对抗攻击(Adversarial Attack)

PyTorch深度学习实战(28)——对抗攻击 0. 前言1. 对抗攻击2. 对抗攻击模型分析3. 使用 PyTorch 实现对抗攻击小结系列链接 0. 前言 近年来,深度学习在图像分类、目标检测、图像分割等诸多领域取得了突破性进展,深度学习模型已经能…

React学习计划-React16--React基础(七)redux使用与介绍

笔记gitee地址 一、redux是什么 redux是一个专门用于做状态管理的js库(不是react插件库)它可以用在react、angular、vue的项目中,但基本与react配合使用作用:集中式管理react应用中多个组件共享的状态 二、什么情况下需要使用r…

go 源码解读 - sync.Mutex

sync.Mutex mutex简介mutex 方法源码标志位获取锁LocklockSlowUnlock怎么 调度 goroutineruntime 方法 mutex简介 mutex 是 一种实现互斥的同步原语。(go-version 1.21) (还涉及到Go运行时的内部机制)mutex 方法 Lock() 方法用于…

0.1+0.2≠0.3,揭秘Python自带的Bug

朋友们,问一个简单的问题:0.10.2? 你肯定会说:中国人不骗中国人,0.10.20.3。 但是在Python里,0.10.2≠0.3 ,我们今天一起来看看这个,并且看一下解决办法。 离奇的错误 在python里…

解决ELement-UI懒加载三级联动数据不回显(天坑)

最老是遇到这类问题头有点大,最后也是解决了,为铁铁们总结了一下几点 一.查看数据类型是否一致 未选择下 选择下 二.处理数据时使用this.$set方法来动态地设置实例中的属性,以确保其响应式 三.绑定v-if 确保每次重新加载 四.绑定key 五.完整代码

台阶仪在半导体行业中的广泛应用及其重要意义

台阶仪在半导体材料的表征和研究中是一种非常重要的工具。如在半导体材料的制备过程中,一些关键的工艺参数,如温度、压力、气氛等条件的变化,会导致半导体材料的能带结构发生变化,通过使用台阶仪,可以准确测量和分析材…

菜鸟学习vue3笔记-vue hooks初体验

import { ref } from "vue"; export default function () {let a1 ref(1);let a2 ref(5);let c ref(0);function add() {a1.value;a2.value;}return {add,a1,a2,c,}; }<template><div><p>第一个数字{{ a1 }}</p><p>第二个数字{{ a2…

解密Python高级特性:深度探讨装饰器与上下文管理器的魔法

写在开头 在Python编程的奇妙世界里,有两个被誉为编程魔法的特性:装饰器和上下文管理器。它们不仅如同纹章和护盾般赋予代码强大的能力,更是提升代码优雅性和可维护性的法宝。本篇文章将深入研究这两项高级特性,揭示它们的神秘面纱,同时通过丰富的实例展示它们的多样应用…

用C的递归函数求n!-----(C每日一编程)

用递归函数求n&#xff01; 有了上面这个递归公式就能写C代码了。 参考代码&#xff1a; int fac(int n) {if (n 1 || n 0)return 1;else return n * fac(n - 1); } void main() {int n;scanf("%d",&n);int f fac(n);printf("\n%d!%d\n", n, f); …

[Angular] 笔记 11:可观察对象(Observable)

chatgpt: 在 Angular 中&#xff0c;Observables 是用于处理异步数据流的重要工具。它们被广泛用于处理从异步操作中获取的数据&#xff0c;比如通过 HTTP 请求获取数据、定时器、用户输入等。Observables 提供了一种机制来订阅这些数据流&#xff0c;并可以在数据到达时执行相…

python实现一维傅里叶变换——冈萨雷斯数字图像处理

原理 傅立叶变换&#xff0c;表示能将满足一定条件的某个函数表示成三角函数&#xff08;正弦和/或余弦函数&#xff09;或者它们的积分的线性组合。在不同的研究领域&#xff0c;傅立叶变换具有多种不同的变体形式&#xff0c;如连续傅立叶变换和离散傅立叶变换。最初傅立叶分…

Python初学者必须吃透的69个内置函数!

所谓内置函数&#xff0c;就是Python提供的, 可以直接拿来直接用的函数&#xff0c;比如大家熟悉的print&#xff0c;range、input等&#xff0c;也有不是很熟&#xff0c;但是很重要的&#xff0c;如enumerate、zip、join等&#xff0c;Python内置的这些函数非常精巧且强大的&…

docker学习(二十一、network使用示例container、自定义)

文章目录 一、container应用示例1.需要共用同一个端口的服务&#xff0c;不适用container方式2.可用示例3.停掉共享源的容器&#xff0c;其他容器只有本地回环lo地址 总结 二、自定义网络应用示例默认bridge&#xff0c;容器间ip通信默认bridge&#xff0c;容器间服务名不通 自…

FPGA高端项目:SDI 视频+音频编解码,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 GT 高速接口解决方案我目前已有的SDI编解码方案 3、设计思路和框架设计框图GV8601A均衡EQGTX 时钟要求GTX 调用与控制SMPTE SD/HD/3G-SDISMPTE SD/HD/3G-SDI 接收SMPTE SD/HD/3G-SDI 发送 SDI 视频接收数据处理SDI 音频接收-…

天文观测与计算机技术:共舞在星辰大海

天文观测与计算机技术&#xff1a;共舞在星辰大海 在人类探索宇宙的历程中&#xff0c;天文观测和计算机技术如同一对并肩作战的勇士&#xff0c;共同书写着人类对宇宙的认知。本篇博客将深入探讨这两者如何交织在一起&#xff0c;为人类打开一扇又一扇探索宇宙的窗户。 一、…

羊大师教你如何选择适合孩子的羊奶,孩子成长的关键!

当谈到孩子的健康与成长时&#xff0c;正确的饮食是至关重要的。而在众多的饮品中&#xff0c;羊奶因其独特的营养价值备受家长们的青睐。那么&#xff0c;如何为孩子挑选适合的羊奶成为了一个重要的选择。下面&#xff0c;小编羊大师将为大家介绍如何选择适合孩子的羊奶。 我…

Flask 账号管理列表

Flask 账号管理列表 web/controllers/account/Account.py /index route_account Blueprint( account_page,__name__ )route_account.route( "/index" ) def index():resp_data {}req request.valuespage int( req[p] ) if ( p in req and req[p] ) else 1qu…

【Simulink系列】——用扫地机器人实例快速引入

目录 一、Simulink基本认知 1、模块图建模 2、仿真基本流程 3、调试技巧 二、基于模型的simulink设计实例&#xff08;两轮扫地机器人&#xff09; 1、系统定义与布局 确定建模目的 确定系统组件和接口 确定系统布局 2、建模并验证系统 对组件建模 ①物理组件建模 …

深度学习基础知识神经网络

神经网络 1. 感知机 感知机&#xff08;Perceptron&#xff09;是 Frank Rosenblatt 在1957年提出的概念&#xff0c;其结构与MP模型类似&#xff0c;一般被视为最简单的人工神经网络&#xff0c;也作为二元线性分类器被广泛使用。通常情况下指单层的人工神经网络&#xff0c…