汇编基础一日一学习1

寄存器是什么?大致说寄存器是cpu的部件(一般用于信息储存)。也可以说寄存器是我们可以进行指令读写的部件。  我们目前80386的cpu的每个寄存器是4个字节的。也就是32位。(也可以说80386cpu有32条地址线)。8个通用寄存器eax ebx ecx edx esp ebp esi edi 。 也就是我们cpu每次读取内存中二进制数据的时候,每次只能读取32个二进制位的数据。因为我们cpu是通过数据总线去读取的。80386数据总线32根。。

   1.lea指令。
  
  此指令是将源操作数(也就是存储单元)的有效地址(也可以叫做偏移地址)传送到目的操作数。。 举例
  

  lea    eax,  [ebp-4C]
      目的操作数  源操作数
    
  这里有两个注意的地方:
  
  (1)源操作数必须是一个存储单元。不能是立即数。

  (2)目的操作数必须是8个通用的寄存器。eax ebx ecx edx esp ebp esi edi


  讲解:此示例表示的存储单元的有效地址是 ebp-4c 这个结果被传送到eax寄存器中。


  课外知识:这个指令一般被用于我们程序中子程序堆栈分配来确定存储单元的有效地址。因为我们局部变量分配内存,我们不可能确定其相应的地址,因为堆栈分配是按照你声明局部变量的大小来分配的。所以我们只能采用lea指令来获取相应内存单元的有效地址并传送到相应的目的操作数中。


 
 

    小作业:
           
        判断是否正确

    1.lea    eax,edx           

    2.lea    eax, 50H

    3.lea    esp,[ebp-30]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值