把.c文件转为汇编,并分析堆栈

黄二玉+《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

预备知识

cup的内部寄存器
  • 通用寄存器:
    数据寄存器: AX,BX,CX,DX
    地址指针和变址寄存器:SP,BP,SI,DI
  • 段寄存器:CS,DS,SS,ES
  • 指令指针 IP
  • 标志寄存器 FLAGS

在不同型号的机器上,用于表示的字母和寄存器的种类可能不同,比如在32位机器上,AX被表示成EAX,BX被表示成EBX,还有的机器上可能没有段寄存器。

寻址方式
  • 直接寻址:直接给出有效地址
    例如:
    movl 0x3A134B,%edx   //这里的%edx表示edx寄存器,movl中的l表示32位
  • 立即寻址:直接给出操作数
    例如:movl $3A134B ,%edx   //这里的美元符号表示这是一个数,不是地址
  • 寄存器寻址 :操作的数包含在寄存器中
    例如:
    movl %eax,%ebx   //把ax寄存器里面的数放到bx中
  • 寄存器间接寻址:寄存器中给出的不是操作数而是操作数的地址
    例如:
    movl (%eax),%ebx   //这里的括号表示根据括号内提供的地址的一种寻找操作&#
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值