新闻资讯
    搜索 Search

    魏德米勒模块的机器指令调用码

    2020-01-13 11:41      点击:
          魏德米勒模块的段内调用指令机器指令的操作码是十六进制,其操作是先把当前IP指令指针寄存器的值压入堆栈保存,这个值是下一条指令地址,然后再把被调用的子程序的偏移地址值送入IP寄存器。 微处理器把当前值和IP值相结合形成物理地址,此地址指向被调用子程序的第1字节。当子程序的执行中,遇到指令离开子程序,返回时,指令会从堆栈中弹出IP的保留值,并把它装入IP,使程序返回到下一条指令继续执行,这个过程是段内调用。其特点是在子程序调用、返回过程中段寄存器不变化,只有指令指针寄存器IP发生变化。
     
          魏德米勒模块主程序与被调用的子程序同在一个段内。模块化程序设计必然涉及到模块间的调用问题。模块间的调用是通过段间的调用来实现的。若被调用的子程序是在现指令段之外,则称为段间调用。一条段间调用指令的机器指令码共有5个字节。被调用子程序所在段的段值)装入寄存器,把IP指令指针寄存器的值压入堆栈,并将被调用子程序相应的偏移地址装入IP, 当离开子程序返回时,段间调用的指令会从堆栈中依序弹出IP和CS两个寄存器的原值,返回到CALL的下一条指令。