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

  • 相关阅读:
    kickstart自动化安装
    linux双网卡绑定
    作死实验,删除libc.so.6
    安装centos6及安装redhat6后的配置
    交换机、linux光衰查询
    ansible的简单使用
    linux安全配置学习
    vm的三种网络模式
    Recylerview的使用系列教程
    Android自定义组合控件
  • 原文地址:https://www.cnblogs.com/student-note/p/8626511.html
Copyright © 2011-2022 走看看