汇编语言入门教程

汇编语言入门教程

_add_a_and_b:  #程序运行到这里会新建一个帧
   push   %ebx  #把寄存器ebx的值写入add_a_and_b帧
   mov    %eax, [%esp+8]   #esp寄存器中的地址向上移动8个字节,去除指向的值到eax寄存器中
   mov    %ebx, [%esp+12]  #同理
   add    %eax, %ebx #寄存器eax加ebx,结果保存在eax中
   pop    %ebx  #回收帧中的内存
   ret  

_main:
   push   3   #把3入main帧  会先分配内存四个字节,然后在把3保存进去
   push   2  #把2入main帧
   call   _add_a_and_b   #调用_add_a_and_b函数
   add    %esp, 8  #把esp的地址加上8个字节回写到esp中,回收剩下的地址
   ret

#ESP寄存器保存了栈当前最深的位置地址
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值