2022.4.18
寄存器
通用寄存器
1、32位寄存器:EAX EBX,ESP,EBP,ESI,EDI.
2、16位寄存器: AX,CX,DX,BX,SP,BP,SI,DI.
3、8位寄存器:AL,CL,DL,BL,AH,CH,DH,BH.
MOV指令
形势:MOV 目标操作数,源操作数
作用:拷贝源操作数到目标操作数
1、源操作数可以是立即数、通用寄器、寄存器、或者内存单元
2、目标操作数可以是通用寄存器、段寄存器或者内存单元
3、操作数的宽度必须一样
4、源操作数和目标操作数不能同时为内存单元
ADD指令:加法,SUB指令:减法
寄存器语言
r—通用寄存器
m—内存
imm—立即数
r8—代表8位通用寄存器
m8—8位内存
imm8—8位立即数
例子:
MOV r/m8(目标操作数),r8(源操作数):第一位操作数可以是8位寄存器或者一块内存第二个操作数是8位寄存器
MOV r8,r/m8:将通用寄存器或者一块内存放入8位寄存器
内存
寄存器与内存的区别,
1、寄存器位于CP内部,执行速度快,但比较贵
2.内存速度相对较慢,但成本较低,所以可以做的很大
3.寄存器和内存没有本质区别,都是用于存储数据的容器,都是定宽的
4.寄存器常用的有8个,EAX,ECX,EDX、EBX、ESP、EP、ESI、EDI
5.计算机中的几个常用计量单位, BYTE WORD DWORD
BYTE节=8(BI)
WORD字=16(BIT)
DWORD双字=32(BIT)
IKB =1024 BYTE
1B=1024
1GB=1024B
6.内存的数量特别庞大,无法每个内存单元都起一个名字,所以用编号来代替,我们称计算机CPU是32位或64位
有很多书上说之所以叫32位计算机是因为寄存器的宽度是32位,是不准确的,因为还有很多寄存器是大于32位的
计算机内存的每一个字节会有一个编号(即内存编号的单位是字节)
1、内存格式
1每个内存单元的宽度为8
2[编号]称为地址
3地址的作用:当我们想从内存中读取数据或者想向内存中写入[OxFFFFFFFF]
2、从指定内存中写入/读取数据
mov dword ptr ds: [0x0012FF34](奇奇怪怪的单词)
dord:要读/写多少此时是4字节 byte=1字节 word=2字节
ptr: Point代表后面是一个指针(指针的意思就是里面存的不是普通的值,而是个地址
ds;段存器(不太明白的样子)
0x0012FF34:内存编号,必须是32位的,0可省去
AT:地址编号不要随便写,计算机未必读得出来。
本文详细解析了通用寄存器的不同类型,如32位和16位寄存器,以及8位寄存器,并重点讲解了MOV指令的使用规则,包括源操作数和目标操作数的选择。此外,还探讨了寄存器与内存的区别以及内存格式和操作技巧,适合初学者和进阶者参考。
1072

被折叠的 条评论
为什么被折叠?



