zoukankan      html  css  js  c++  java
  • 汇编学习笔记26

    第26讲开始讲第四章,

    26讲内容为子程序,即过程

    在汇编中,过程调用包括调用和返回。可以在段内调用和返回,也可以在段间返回。

    在段内的调用过程和返回过程称为近调用和近返回,

    在段间的调用过程和返回过程称为远调用和远返回。

    段内直接调用:

    CALL DSI  首先将下一条要执行的指令IP压栈,然后对IP作DSI偏移。

    段内间接调用:

    CALL OPRD  首先将下一条要执行的指令IP压栈,然后将IP设到OPRD的位置。OPRD为16位通用寄存器或字存储单元。

    段间直接调用:

    CALL 过程名  首先将CS段地址和下一条指令IP地址依次压栈,然后将CS置为过程名所在代码段的段地址,IP置为过程名首地址。

    段间间接调用:

    CALL OPRD   首先将CS段地址和下一条指令IP地址依次压栈,然后将OPRD中的高字送入CS, 低字送入IP。OPRD必须为双字存储单元。

    返回: RET

    将CS和IP(如果需要)出栈到CS和IP。(与调用相反)

    段内(间)带立即数的返回

    在CS和IP出栈后,再将SP加上立即数。立即数必须是偶数

    过程的定义:

    过程名 PROC [NEAR | FAR]

    过程名 ENDP

    默认情况下是NEAR段内调用。过程名的定义和结束必须成对出现且过程名保持一致。

  • 相关阅读:
    Golang学习
    Golang学习
    基础知识
    Golang学习
    基础知识
    hyper-v server 2016安装,客户端远程管理
    inotifywait命令
    CENTOS 7发送邮件测试
    NFS学习
    awk命令
  • 原文地址:https://www.cnblogs.com/hailong/p/1914137.html
Copyright © 2011-2022 走看看