寄存器和常用的汇编指令

寄存器是什么

寄存器是CPU的一部分,所以寄存器与CPU的数据传输是最快的,但是也决定了,寄存器的数量有限。32位机子

通用寄存器有八类:
四个数据寄存器:主要用于保存操作数和运算结果,从减少读取操作数所需要的时间

eax:累加和结果寄存器
ebx:数据指针寄存器
ecx:循环寄存器
edx:i/o指针

两个变址和指针寄存器:主要用于存放储存单元在段内的偏移量,可以实现多种储存器操作数的寻址方式,为以不同的寻址方式访问储存单元提供方便。

esi:源地址寄存器
edi:目的地址寄存器

两个指针寄存器:主要用于存放堆栈储存单元在段内的偏移量,可以实现多种储存器操作数的寻址方式,为以不同的寻址方式访问储存单元提供方便。

ebp:堆栈指针
esp:栈指针寄存器

eip:指令指针寄存器是存放下次将要执行的指令在代码段的偏移量。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。在现实方式下,由于每个段的最大范围为64K,所以,EIP中的高16位肯定都为0,此时,相当于只用其低16位的IP来反映程序中指令的执行次序。

常用的汇编指令

MOV (传送):由源向目标传送字,源和目标是寄存器
PUSH(进栈):由源向堆栈顶传送字
POP(退栈):由堆栈顶向目标传送字

ADD(加法):计算两个操作数的和
INC(增量):操作数加一
DIV(除法):计算两个操作数的商
MUL(乘法):计算两个操作数的积
SUB(减法):计算两个操作数的差

CALL(跳转指令):
当执行call指令时,进行两步操作:
1)将当前的IP或CS和IP压入栈中
2)转移
RET(返回):由已知位置内容代PC(程序计数器)和其他位置内容
JMP(无条件转移):以指定地址装入PC

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值