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

汇编语言的由来:
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位通用寄存器:
【汇编笔记】初识汇编-内存读写_第1张图片
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI)
2个指针寄存器(ESP和EBP)
打开OD工具 随便打开一个exe文件
查看右则寄存器窗口
【汇编笔记】初识汇编-内存读写_第2张图片
EIP 表示程序该执行哪一行
对应左侧被标记的地址
【汇编笔记】初识汇编-内存读写_第3张图片
操作八个通用寄存器
双击地址后的汇编代码 编辑
【汇编笔记】初识汇编-内存读写_第4张图片
修改后 点击步过按钮 或 按F8执行
【汇编笔记】初识汇编-内存读写_第5张图片
【汇编笔记】初识汇编-内存读写_第6张图片
寄存器的值被修改
被标记的地址进入下一行
EIP同步

内存读写

其他寄存器
【汇编笔记】初识汇编-内存读写_第7张图片
【汇编笔记】初识汇编-内存读写_第8张图片
只有AX、CX、DC、BX相当于32位的砍一半
再砍一半分为8位的 前一半AH、后一半AL
演示:
初始值
【汇编笔记】初识汇编-内存读写_第9张图片
后半变成5555
【汇编笔记】初识汇编-内存读写_第10张图片
5555的前一半变成22
【汇编笔记】初识汇编-内存读写_第11张图片
5555的后一半变成33
【汇编笔记】初识汇编-内存读写_第12张图片
注意编辑时取消保持大小复选框
【汇编笔记】初识汇编-内存读写_第13张图片

取寄存器的值
【汇编笔记】初识汇编-内存读写_第14张图片
【汇编笔记】初识汇编-内存读写_第15张图片

内存大小
BYTE 一字节
WORD 两字节
DWORD四字节
读内存地址的值给寄存器
【汇编笔记】初识汇编-内存读写_第16张图片
生成的汇编
image.png
PTR表示数据段
执行结果(右下角可看到内存地址的数值)
【汇编笔记】初识汇编-内存读写_第17张图片
读取两个字节
【汇编笔记】初识汇编-内存读写_第18张图片
【汇编笔记】初识汇编-内存读写_第19张图片
写内存 演示
【汇编笔记】初识汇编-内存读写_第20张图片
不能全部都是内存地址
【汇编笔记】初识汇编-内存读写_第21张图片
直接插入数值 演示
【汇编笔记】初识汇编-内存读写_第22张图片
【汇编笔记】初识汇编-内存读写_第23张图片
【汇编笔记】初识汇编-内存读写_第24张图片

你可能感兴趣的:(汇编,汇编,计算机组成原理)