学汇编不是为了用汇编写代码,而是用汇编来深入理解C和C++你死记硬背的地方,学汇编痛苦几天,收益无穷,可以节省很多很多你痛苦的时间。
1.寄存器
计算机存储数据有三个地方:CPU 内存 硬盘
寄存器就是CPU中用来存储数据的地方
寄存器的大小取决于CPU的位数
32位CPU:能提供3种类型的寄存器:8bit 16bit 32bit
62位CPU:能提供4种类型的寄存器:8bit 16bit 32bit 64bit(05年以后的电脑几乎都是64位的CPU)
2.通用寄存器
32位通用寄存器(通用即你想用来存什么就存什么)
- EAX
- ECX
- EDX
- EBX
- ESP
- EBP
- ESI
- EDI
通用寄存器 | ||
---|---|---|
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(高八位) |
mov指令:
- 立即数到寄存器
- 寄存器到寄存器
MOV EDX,1 //把1存入寄存器EDX
MOV EAX,2 //把2存入寄存器EAX
MOV EAX,EDX //把EDX的值存入到EAX中