寄存器介绍
寄存器是什么
计算机在三个地方可以存数据
- cpu
- 内存
- 硬盘
所谓寄存器,就是cpu中硬盘存储数据的地方
寄存器的大小
寄存器大小取决于cpu的位数
比如32位 那么cpu所提供的容器有三种 8位 16位 32位
如果64位 那么cpu所提供的容器有四种 8位 16位 32位 64位
05年后的电脑cpu几乎都是64位的。
通用寄存器
32位通用寄存器
EAX | ESP |
---|---|
ECX | EBP |
EDX | ESI |
EBX | EDI |
32位通用寄存器,意味着通用,想存什么酒存什么
寄存器中最大的数据宽度是32位 超过就会被丢弃
MOV指令
- 立即数到寄存器
MOV EAX,1
MOV ECX,2
- 寄存器到寄存器
MOV EDX,EAX
32位cpu中其他的通用寄存器
32位 | 16位 | 8位 |
---|---|---|
EAX | AX | AL |
ECX | CX | CL |
EDX | DX | DL |
EBX | BX | BL |
ESP | SP | AH |
EBP | BP | CH |
ESI | SI | DH |
EDI | DI | BH |
关系:
比如eax 12345678
整体可以看做 32位寄存器 eax
后四位5678
可以看做 16位寄存器 ax
后两位78
可以看错8位寄存器 al
但是:
esp么有8位的 ah则是 ax的高位 也就是 56
才是ah
那么以此类推
ebp 的8位 就是 ch
esi 的8位 就是 dh
edi 的8位 就是 bh
寄存器和寄存器之间也可以赋值,但是数据宽度必须匹配