汇编语言01-通用寄存器

通用寄存器
每个通用寄存器都是以嵌套的形式将自己又分割成小的寄存器,比如EAX寄存器,它有32位,整个0-32叫做EAX,但是在其内部,又划分成了小寄存器,比如0-15位,叫AX寄存器,而在AX中,又划分了两个寄存器,0-7位叫做AL寄存器,8-15位叫做AH寄存器
在这里插入图片描述

1:EAX
累加器,用来保存加法和减法的结果,也常用EAX来存放函数的返回值
2:EBX用来存放临时变量的
3:ECX计数寄存器,
在循环中,循环一次ECX减1
在乘法中,如果结果达到64位,那么ECX存放低32位
笔记:C++中类的成员函数的参数就是用ECX存放,如果见到ECX,基本可以认为这是一个函数参数
4:EDX数据寄存器
在乘除运算中可作为操作数参与运算
在整数除法中存放产生的余数
在惩罚中,如果结果达到64为,那么EDX存放高32位
在IO中用于存放端口地址

5:ESI源寄存器
在批量复制中,用于源目标地址,通常配合EDI使用
6:EDI目的寄存器
在批量复制中,用于目的地址,通常配合ESI使用
7:ESP堆栈指针寄存器
在栈中,进入栈中一个数据,ESP挪动一个数据的大小,比如入栈一个int,ESP挪动4个字节(本质是存放的地址减4),当执行完毕下面的汇编指令之后,小端法内存图如下

_asm push 0x11223344

在这里插入图片描述

8:EBP基指针寄存器
在方法调用中,记录回来的地址,比如函数A中调用函数B,当B执行完毕之后,势必要跳转到A中继续执行,那么跳转到哪里,就由EBP决定

猜你喜欢

转载自blog.csdn.net/u011624903/article/details/109965669