zoukankan      html  css  js  c++  java
  • 第五章----过程

    控制台窗口:所有windows版本控制台窗口的大小默认是25行乘以80列
    可以使用mode命令修改行数和列数(cmd下命令)
      mode con cols=80 lines=80

    运行时栈:
      由CPU直接管理使用两个寄存器SS,Esp
    PUSH 压栈 -
      过程: PUSH指令首先减少ESP的值,然后把一个16位或者32位的源操作数复制到堆栈上
    POP 出栈 +

    PUSHFD 压入32位的EFLAGS寄存器的值
    POPFD 弹出堆栈的值到EFLAGS寄存器中
    PUSHAD 顺序压入所有的32位通用寄存器
    POPAD 同上面相反
    PUSHA 顺序压入16位寄存器
    POPA 同上面相反
    过程:
      过程定义:
        main proc
        ...

        main endp
    除了启动过程之外的其他过程应以ret指令结束,强制CPU返回到过程被调用的地方
    启动过程(main)以exit结束,实际上是调用了 invoke ExitProcess,0
    CALL:把返回地址压入堆栈并把被调用过程的地址复制到指令指针寄存器中
    RET:弹出程序返回地址,并设置指针寄存器
    USES:允许列出被过程修改的所有寄存器,在ret时出栈
      eg. temp proc uses esi eax

      ret
      temp endp

  • 相关阅读:
    SVN服务器搭建和使用(一)
    Python3.x和Python2.x的区别
    myeclipse启动不了的解决方法
    学习第49天
    学习第48天
    学习第47天
    学习第46天
    学习第45天
    学习第44天
    学习第43天
  • 原文地址:https://www.cnblogs.com/student-note/p/8626511.html
Copyright © 2011-2022 走看看