简答题

说明C程序调用外部汇编模块的具体方法,并总结参数传递和汇编模块返回值的接口约定。分析C程序调用汇编模块前后的堆栈变化情况。

正确答案

(1)C程序调用外部汇编模块的具体方法:调用程序和被调用的汇编过程必须使用相同的存储模型;汇编子程序的过程名和变量名都应说明为public且过程名和变量名前加下划线;在C中应将在本程序中用到的汇编子程序的过程名和变量名说明为外部过程和变量,并且不能在名字前加下划线。
(2)参数传递和汇编模块返回值的接口约定:通过堆栈传递参数(从右到左);传值时直接写出实际参数,传址时在extern说明语句中将参数类型说明成指针类型,并在调用时给出参数地址。返回值通过寄存器传递,16位返回值用AX,32位返回值用DX:AX,返回值大于32位则放到静态变量存储区(near调用时该数据的首地址存放在AX中,far调用时该数据的首地址存放在DX:AX中)。
(3)调用时将参数从右向左依次压入堆栈,再将返回地址压入堆栈;返回后将内容依次弹出即可。

答案解析

相似试题
  • 简述在C语言程序中调用汇编语言程序的方法。

    简答题查看答案

  • 简述汇编语言程序调用C语言程序。

    简答题查看答案

  • 在C语言程序如何调用汇编语言程序?

    简答题查看答案

  • 说明在嵌入式汇编程序中访问C程序变量的一般方法。

    简答题查看答案

  • C语言程序可以嵌套加入汇编程序模块。

    判断题查看答案

  • 汇编语言与C混合编程的模式主要有两种:一种是C调用汇编代码,另一种是()

    填空题查看答案

  • 简述在c语言程序中内嵌汇编语言的方法。

    简答题查看答案

  • 说明beq指令的含义,并解释为什么汇编程序在对下列汇编源程序中的beq指令进行汇编时会遇到问题,应该如何修改该程序段?

    简答题查看答案

  • 在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现()。

    单选题查看答案