<汇编语言(第2版)>2011041001

【摘抄】

call和ret指令都是转移指令

详细:
ret指令用栈中的数据,修改IP的内容,实现近转移
retf指令用栈中的数据,修改CS和IP的内容,实现远转移

    CPU执行ret指令

    (IP)=((SS)*16+(sp))
    (sp)=(sp)+2

    CPU执行retf指令
    (IP)=((SS)*16+(sp))
    (sp)=(sp)+2
    (CS)=((SS)*16+(sp))
    (sp)=(sp)+2

call指令:
CPU执行此指令,将当前IP和CS或IP压入栈中,再实现转移

常用格式如下:
call 标号,IP
call far ptr 标号,CS,IP
call 16位 reg,IP
call word ptr 内存单元地址,IP
call dword ptr 内存单元地址,CS,IP

call与ret指令共同支持了汇编语音编程中的模块化设计。

那么,有如下问题有待思考:
1、将参数N存储在哪?
2、计算得到的数值,存储在哪?

用寄存器来存储参数和结果是最常用的方法。
另外通用的方法是使用栈来传递参数。
posted @ 2011-04-10 10:34  西就东城  阅读(200)  评论(0编辑  收藏  举报