1、寄存器
计算机有三个地方可以存储数据,分别是· CPU,内存,硬盘。运行速度 CPU > 内存 > 硬盘。价格也是CPU比较贵。
寄存器,就是CPU中用来存储数据的地方。寄存器的大小取决于CPU的位数。
32位的CPU:有三种寄存器类型,分别是 8位 16位 32位
64位的CPU:有四种寄存器类型,分别是 8位 16位 32位 64位
05年后买的电脑,基本都是64位的。为何64位已经普及还要学习32位的? 因为硬件发展历史,64位向下兼容,由32位发展而来,无非是新增寄存器,指令都是一样的。直接学习64位的会比较吃力,故此我们先学习32位的。而且还要很多程序是32位的。
2、通用寄存器
32位通用寄存器,通用寄存器,想存什么就存什么。不能超过32位,超过部分会被丢弃。
EIP也是寄存器,但它里面的值是CPU下次要执行的指令地址,不能用做他用,故此不是通用寄存器。
EAX:一般用来存储返回值
ECX: 用来存储计数值,可结合rep指令
EDX:
EBX:
ESP:栈顶指针寄存器
EBP:栈底指针寄存器
ESI:存储复制时的原地址,结合move moves指令
EDI:存储复制时的目标地址,结合move moves指令
3、MOV指令
用来移动数据的。
汇编就是寄存器与寄存器之间,或者寄存器与内存之间数据的来回流动。
想要学好汇编,只要记住几个关键词就可以了。寄存器,内存,指令。围绕这三点就可以把汇编学好。汇编好理解,好做实验。
MOV EAX,1 将一个立即数1,存放到寄存器EAX中。
MOV EDX,EAX 将寄存器EAX中的值,存放到EDX中。
实验--初始寄存器值,全部设为FFFF FFFF