正在加载图片...
第六章 1.子程序调用和返回指令完成哪些操作? 答:子程序调用指令首先把子程序的返回地址(即调用程序中CAL指 令的下一条指令的地址)存入堆栈,然后转移到子程序的入口地址去执行 ,它又分为段内调用和段间调用;返回指令的操作是返回地址出栈送IP寄 存器(段内或段间)和CS寄存器(段间) 2.将过程定义为FAR属性,可以段内调用吗? 答:不能。如果所定义的过程是FAR属性,那么对它的调用和返回一定 都是FAR属性;如果所定义的过程是FAR属性,那么对它的调用和返回一定 都是FAR属性。因此只需在定义时考虑它的属性,而CAL和RET的属性由汇 编程序来确定。 3.在用堆栈传参的子程序设计中,为什么常用带常数的返回指令? 答:在用堆栈传参时,主程序中要把参数的地址压入堆栈,子程序中 通过BP寄存器访问堆栈单元取出参数的地址,而不是用出栈的方法。因此 为使返回到主程序后堆栈能恢复原始状态不变,要用带常数的返回指令调 整SP的值第六章 1. 子程序调用和返回指令完成哪些操作? 答:子程序调用指令首先把子程序的返回地址(即调用程序中CALL指 令的下一条指令的地址)存入堆栈,然后转移到子程序的入口地址去执行 ,它又分为段内调用和段间调用;返回指令的操作是返回地址出栈送IP寄 存器(段内或段间)和CS寄存器(段间)。 2. 将过程定义为FAR属性,可以段内调用吗? 答:不能。如果所定义的过程是FAR属性,那么对它的调用和返回一定 都是FAR属性;如果所定义的过程是FAR属性,那么对它的调用和返回一定 都是FAR属性。因此只需在定义时考虑它的属性,而CALL和RET的属性由汇 编程序来确定。 3.在用堆栈传参的子程序设计中,为什么常用带常数的返回指令? 答:在用堆栈传参时,主程序中要把参数的地址压入堆栈,子程序中 通过BP寄存器访问堆栈单元取出参数的地址,而不是用出栈的方法。因此 为使返回到主程序后堆栈能恢复原始状态不变,要用带常数的返回指令调 整SP的值
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有