汇编学习笔记 第六章

6.1 子程序的结构

  1. ENDP表示子程序的定义结束,并不等价于执行结束

  2. RET与C中的switch-break相似

  3. NEAR 与 FAR 的定义一般还是有必要的

  4. 调用时的栈变化

    • 段内调用

      • SP:自减2,相当于上浮一个字,用于保存当前IP
      • IP:转移到DST或有效地址
    • 段间调用

      • SP:自减4,相当于上浮两个字,用于保存当前IP与CS
      • IP/CS:转移到DST对应的偏移地址/段地址,或有效地址的低位/高位(即先压入CS再压入IP
      • 例如:过程地址在数据段DATA所指单元中,则有* CALL DWORD PTR DATA*
  5. 返回时的栈变化

    • RET/RETF
      • 编译器会根据属性自动改变RET为RETF
  6. 例题P205,关于栈的操作相对重要一点

你可能感兴趣的:(汇编)