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

汇编语言的由来:

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

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

读取两个字节

写内存 演示

不能全部都是内存地址

直接插入数值 演示


相关推荐
斑马1394 天前
ARM学习笔记(二)——ARM汇编基础
汇编·arm开发·arm
wechatbot8884 天前
【极客互动】企业微信Spring Boot 调度 SearchContact开发自动添加外部联系人网关
汇编·微信·自动化·企业微信·rpa
星栖与芯5 天前
LiteOS-M 切换汇编逐行图解(5):HalPendSV 任务切换的现场搬运(五阶段逐行)
汇编·stm32·嵌入式硬件·harmonyos
星栖与芯5 天前
LiteOS-M 切换汇编逐行图解(4):中断三件套与 HalTaskSchedule 触发
汇编·stm32·单片机·嵌入式硬件·harmonyos
xx~t6 天前
嵌入式——ARM——汇编2
linux·汇编·arm开发·嵌入式硬件·启动代码
祖力556 天前
ARM汇编LED实验
汇编·arm·imx6ull
free-elcmacom6 天前
计算机组成原理<1>计算机的基本组成
计算机组成原理
索端阳6 天前
ARM Day02 学习总结:ARM汇编基础核心知识点梳理
汇编·学习·arm
xx~t7 天前
嵌入式——ARM——汇编1
linux·汇编·arm开发·嵌入式硬件·arm
索端阳7 天前
初识 ARM Cortex-A7,嵌入式底层入门总结
汇编·嵌入式硬件