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

汇编语言的由来:

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位通用寄存器:

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表示数据段

执行结果(右下角可看到内存地址的数值)

读取两个字节

写内存 演示

不能全部都是内存地址

直接插入数值 演示


相关推荐
资料,小偿2 天前
4.1.2基于51单片机汇编语言出租车计价器proteus仿真出租车计价器,汇编语言51单片机
汇编·51单片机·proteus
ol木子李lo4 天前
Visual studio 2022高亮汇编(ASM)语法方法
汇编·ide·windows·visual studio
Liangwei Lin5 天前
计算机组成原理
计算机组成原理
资料,小偿5 天前
4.1.1基于51单片机汇编语言出租车计价器可切换白天黑夜,可修改价格
汇编·51单片机·proteus
embrace995 天前
【C语言学习】数据在内存中存储
java·c语言·开发语言·汇编·c++·学习·算法
Joey_Chen8 天前
补码是什么?为什么byte的范围是-128~127,负数要比整数多1个?
计算机组成原理
T.Ree.11 天前
汇编_mov指令
汇编
CC-NX12 天前
32位汇编:实验12动态链接库
汇编
资料,小偿12 天前
4.101基于8086国旗图案proteus8.9,8086彩灯图案流水灯图案,国期图案仿真,四个开关四种模式。近期本人原创
汇编·proteus
资料,小偿15 天前
4.29.3五种波形发生器8086波形发生器,锯齿波脉冲波正弦波三角波直流信号含调试视频➕18页5000字原创报告软件流程图proteus8.9近期原创的,
汇编·proteus