美文网首页
【Note】Assembler

【Note】Assembler

作者: Yaso | 来源:发表于2018-03-07 17:46 被阅读18次

    简单回顾下汇编相应知识点

    一.寄存器

    通用寄存器:ax(累加) bx(基址) cx(计数) dx(数据)
    段寄存器:cs(代码段) ds(数据段) ss(堆栈段) es(附加段)
    指令指针寄存器:ip
    栈指针寄存器:sp bp
    变址寄存器:si di
    标志寄存器:psw

    32位相应为:exx
    64位相应为:rxx

    二.指令

    1.CALL,RET和LEAVE

    CALL指令的步骤:首先是将返回地址(也就是call指令要执行时EIP的值)压入栈顶,然后是将程序跳转到当前调用的方法的起始地址。执行push和jump指令。

    #汇编解释 (近位移/段间位移)
    (push cs)
    push ip
    jump near s
    

    RET指令则是将栈顶的返回地址弹出到EIP,然后按照EIP此时指示的指令地址继续执行程序。

    (pop cs)
    pop ip
    

    LEAVE指令是将栈指针指向帧指针,然后POP备份的原帧指针到%EBP。

    相关文章

      网友评论

          本文标题:【Note】Assembler

          本文链接:https://www.haomeiwen.com/subject/gaqsfftx.html