一、通用寄存器
32位寄存器从中间分开,其中一半形成了16位寄存器,16位寄存器前四个再从中间分开,形成8个8位的寄存器,并不是说32位、16位、8位寄存器是分开来算的,而是包含关系,我只需要8位,那就只用到8位,我需要32位的,那我就用到32位。
二、汇编代码
所要学的内容:
1.MOV指令
2.ADD指令
3.SUB指令
4.AND指令
5.OR指令
6.XOR指令
7.NOT指令
各指令所在网址:https://www.bcdaren.com/video/videoPlay/330285640321339392
1.MOV指令
操作码 目标操作数 源操作数
MOV EAX,OxAAAAAAAA
MOV AX,OxBBBB
MOV AH,OxCC
MOV AL,OxDD
MOV的作用:拷贝源操作数到目标操作数(也就是将源操作数复制到目标操作数中)。
(1)源操作数可以是立即数、通用寄存数、段寄存器、或者内存单元。
(2)目标操作数可以是通用寄存器、段寄存器或者内存单元。
(3)操作数的宽度必须一样。
(4)源操作数和目标操作数不能同时为内存单元。
MOV指令:
MOV的语法:
三、内存读写
1.寄存器与内存的区别
(1)寄存器位于CPU内部,执行速度快,但比较贵
(2)内存速度相对较慢,但成本低,所以可以做的很大
(3)寄存器和内存没有本质区别,都是用于存储数据的容器,都是定宽的(即都是有边界的)。
(4)寄存器常用的有8个:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI。
(5)计算机中的几个常用计量单位:BYTE,WORD,DWORD。
BYTE 字节 = 8BIT
WORD 字 = 16(BIT)
DWORD 双字 32(BIT)
1KB = 1024BYTE
1MB = 1024KB
1GB = 1024MB
2.内存的数量特别庞大,无法每个内存单元都起一个名字,所以用编号来代替,我们称计算机CPU是32位或者64位,有很多书上说之所以叫32位计算机是因为寄存器的宽度是32位,是不准确的,因为还有很多寄存器是大于32位的。
计算机内存的每一个字节会有一个编号(即内存编号的单位是字节),如下图:
3.内存格式
只要涉及内存读写的,一定要指定它的宽度
4.从指定内存中写入/读取数据
图片等均来源于网络,如若侵权则删。