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

汇编语言的由来:
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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 15:30:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 15:30:04       97 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 15:30:04       78 阅读
  4. Python语言-面向对象

    2023-12-28 15:30:04       88 阅读

热门阅读

  1. 3D模型gltf下载网站(threejs开发)

    2023-12-28 15:30:04       64 阅读
  2. 软件设计模式

    2023-12-28 15:30:04       60 阅读
  3. 使用POI技术实现excel文件的导入

    2023-12-28 15:30:04       55 阅读
  4. LabVIEW MIMO 5G/6G Research Design Library X410

    2023-12-28 15:30:04       53 阅读
  5. ubuntu 系统终端颜色设置

    2023-12-28 15:30:04       50 阅读
  6. Vue.set 方法原理

    2023-12-28 15:30:04       52 阅读
  7. PHP文件上传以及数据写入

    2023-12-28 15:30:04       51 阅读
  8. Crow:Middlewares的使用

    2023-12-28 15:30:04       51 阅读
  9. dockerfile——镜像构建工具详解及案例

    2023-12-28 15:30:04       39 阅读
  10. docker命令

    2023-12-28 15:30:04       35 阅读