通用寄存器-内存读写
来源:互联网 发布:艳照门 张柏芝 知乎 编辑:程序博客网 时间:2024/05/18 06:21
代码演示:
MOV EAX,0xAAAAAAAA
MOV AX,0xBBBB
MOV AH,0xCC
MOV AL,0xDD
MOV指令
MOV EAX,AAAAAAAA
MOV AX,0BBBB
MOV AH,0CC
MOV AL,0DD
MOV EBX,BBBBBBBB
MOV EAX,EBX
MOV AX,CX
MOV AH,DL
MOV的语法
1、MOVr/m8,r8
2、MOVr/m16,r16
3、MOVr/m32,r32
4、MOVr8,r/m8
5、MOVr16,r/m16
6、MOVr32,r/m32
7、MOV r8,imm8
8、MOV r16,imm16
9、MOV r32,imm32
MOV 目标操作数,源操作数
作用:拷贝源操作数到目标操作数
1、源操作数可以是立即数、通用寄存器、段寄存器、或者是内存单元。
2、目标操作数可以是通用寄存器、段寄存器或乾内存单元、
3、操作数的宽度必须一样
4、源操作数和目标操作数不能同时为内存单元。
ADD指令
ADD AX,imm16
ADD EAX,imm32
ADD r/m8,imm8
ADD r/m16,imm16
ADD r/m32,imm32
ADD r/m16,imm8
ADD r/m32,imm8
ADD r/m8,r8
ADD r/m16,r16
ADD r/m32,r32
ADD r8,r/m8
ADD r16,r/m16
ADD r32,r/32
SUB指令
SUB AL,imm8
SUB AX,imm16
SUB EAX,imm32
SUB r/m8,imm8
SUB r/m16,imm16
SUB r/m32,imm32
SUB r/m16,imm8
SUB r/m32,imm8
SUB r/m8,r8
SUB r/m16,r16
SUB r/m32,r32
OR指令
OR AL,imm8
OR AX,imm16
OR EAX,imm32
OR r/m8,imm8
OR r/m16,imm16
OR r/m32,imm32
OR r/m16,imm8
OR r/m32,imm8
OR r/m8 r8
OR r/m16,r16
OR r/m32,r32
OR r8,r/m8
OR r16,r/m16
OR r32,r/m32
NOT 指令
NOT r/m8
NOT /m16
NOT r/m32
寄存器与内存的区别:
1、寄存器位于CPU内部,执行速度快,但比较贵。
2、内存速度相对较慢,但成本较低,所以可以做的很大。
3、寄存器和内存没有本质区别,都是用于存储数据的容器,都是定宽的。
5、计算机中的几个常用计量单位:BYTE WORD DEORD
BYTE 字节=8(BIT)
WORD 字 =16(BIT)
DWORD 双字=32(BIT)
1KB = 1024BYTE
1MB =1024KB
1GB = 1024MB
6、内存的数量特别庞大,无法每个内存单元都起一个名字,所以用编号来代替,我们称计算机CPU是32位或者是64位。
有很多书上说之所以叫32位计算机是因为寄存器的宽度是32位,是不准确的,因为还有很多寄存器是大于32位的。
计算机内存的第一个字节会有一个编号(即内存编号的单位是字节),如下图:
0x00000000
0x00000001
0x00000002
......
......
......
......
.....
......
0xFFFFFFFF
32位计算机的编号最大是32位,也就是32个1,换成16进制为FFFFFFFF,也就是说,32位计算机内存寻址的最大范围是FFFFFFFF,
内存的单位是字节,那内存中能存储的信息最多为:FFFFFFFF+1字节即4G,这也是为什么我们在一个XP系统上面内存小于4G.
7 、只要是32位的计算机,那么最多识别的内存为4G,对吗?
正常情况下。
从指定内存中写入/读取数据
mov dword ptr ds[0x0012ff34],0x12345678
mov eax,dword ptr ds:[0x0012FF34]
dword:要卖多少 此是是4字节
ptr:Point 代表后面是一个指针(指针的意思就是里面的不是普通的值,而是个地址)
ds:段寄存器 先不用管 记住就行
0x0012FF34:内存编号 ,必须是32位的 前面0可以省略
注意:地址编号不要随便写,因为内存是有保护的,并不是所有的内存都可以直接读写(需要特别处理)建议地址编号写成esp的值
mov [0x12345678],0xFFFF
mov word ptr DS:[0x12345678],0xFFFF
阅读全文
0 0
- 通用寄存器-内存读写
- 通用寄存器-内存读写
- 汇编(通用寄存器_内存读写)
- 通用寄存器_内存读写、堆栈
- 通用寄存器
- 通用寄存器
- 通用寄存器
- 通用寄存器
- 通用寄存器 段寄存器
- 寄存器(通用寄存器)
- 状态寄存器和通用寄存器
- 通用寄存器区四个寄存器
- 通用寄存器和段寄存器
- 寄存器&内存
- 通用寄存器的主要用途
- 80x86通用寄存器
- 通用寄存器的作用
- 通用寄存器的作用
- EIGRP-2
- OSPF-1
- RHEL7基本命令操作
- 数据宽度-逻辑运算2
- EasyTouch手指控制摄像机
- 通用寄存器-内存读写
- 函数的副本机制(函数返回值的生命周期)
- OSPF-2
- Fragment中嵌套Fragment,多次显示隐藏父Fragment之后子Fragment不显示
- RHEL7网络管理-shell-sed-awk命令
- 优化篇 01. 允许 Ping 服务器 ❀ Windows Server 2016
- kaptcha配置属性
- studio快捷键
- 第5章 b2d shell脚本