C语言程序调用汇编语言子程序:在C语言中调用汇编子程序,由于可能会涉及参数和返回值传递的问题,可参见前面章节“编译器后端”中介绍的函数调用中的参数传递规律。关于c语言程序调用汇编子程序的瘴用范例如下。

1)在汇编语言源文件中

XREF CData ;外部声明的变量

XDEF AddVar ;可以在外部模块使用的变量或子程序

XDEF ASMData ;可以在外部使用的变量

DataSec:SECTION

ASMData:DS.B l ;定义一个变量

CodeSec:SECTION

AddVar:

ADD CData ;将位于寄存器A中的参数值与C中定义的常量CData相加

STA ASMData ;运算结果位于A和ASMData中

RTS

2)为上述汇编程序建立头文件mixasm.h,建议为每个汇编程序建立一个头文件

#ifndef_MIXASM_H_ //防止头文件多次包含

#define_MIXASM_H_

void AddVar(unsigned char value);

/*将参数value与全局常量CData相加,并将结果存储在ASMData中*/

extxm char ASMData; /*外部定义的变量*/

#endif

3)调用汇编子程序的C语言程序

static int Error---0;

const unsigned char CData=1 2;

#include"mixasm.h¨

void main(void){ .

AddVar(10);//调用汇编子程序

if(ASMData!=CData+lO){//这里ASMData有全局变量进行参数传递的作用

Error=1;

}else{

Error=0;

}

for(;;); //wait forever

}

请您关注:

c语言调用子程序实例,C语言程序调用汇编语言子程序相关推荐

  1. 购物车注册程序编写c语言,基于商城实例的小程序购物车云函数操作

    前言:此文主题是介绍小程序的云函数+数据库的操作,对其它的页面实现逻辑基本不做解释.小程序云函数对应 数据库 的基础功能无非是增删改,此项目使用的云函数也是用来添加商品,改变商品状态,删除商品. 项目 ...

  2. C#之VS2010ASP.NET页面调用Web Service和winform程序调用Web Service

    一:用ASP.NET调用Web Service 打开VS2010,打开"文件-新建-网站",选择"ASP.NET网站" 选好存储位置,语言后点击确定,进入默认页 ...

  3. 微信小程序调用PHP接口,微信小程序调用PHP后台接口教程

    微信小程序调用PHP后台接口,解析纯html文本,效果图片预览 1.微信js动态传参: wx.request({ url: 'https://m.****.com/index.php/Home/Xia ...

  4. c语言管道通信实例,C语言辅导:VC命名管道通信的实现

    无论是SQL Server的用户,还是PB的用户,作为C/S结构开发环境,他们在网络通信的实现上,都有一种共同的方法--命名管道.由于当前操作系统的不惟一性,各个系统都有其独自的通信协议,导致了不同系 ...

  5. c语言.h文件实例,C 语言项目中.h文件和.c文件的关系

    那是一个被 遗忘的年代,在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代. 那时的人们写了很多的.c(.cpp)文件,渐渐地,人们发现在 很多.c(.cpp)文件中的声明语句就是相同的, ...

  6. 【汇编综合应用】大小写字母的转换、2号、9号和10号DOS系统功能调用、分支、循环程序结构、子程序、寄存器传递参数,宏定义、宏调用,观察宏展开。

    实验内容 编程实现:用10号DOS功能调用从键盘输入一串大小写字母到BUF为首址的缓冲区中,然后将其中的小写字母换成大写字母,原大写字母不变,仍然放入本缓冲区,再将该字符串内容在显示器上显示,且以十六 ...

  7. double在c语言的运用实例,C语言double和float 实例分析

    小数也称实数或浮点数.例如,0.0.75.0.4.023.0.27.-937.198 都是合法的小数.这是常见的小数的表现形式,称为十进制形式. 除了十进制形式,也可以采用指数形式,例如 7.25×1 ...

  8. java 调用cmd_java打开本地应用程序(调用cmd)---Runtime用法详解

    有时候我们需要借助java程序打开电脑自带的一些程序,可以直接打开或者借助cmd命令窗口打开一些常用的应用程序或者脚本,在cmd窗口执行的命令都可以通过这种方式运行. 例如: packagecn.xm ...

  9. linux下c代码调用.so,Linux下C程序调用.so(动态链)的一个例子

    /********************************************** * 使用Linux下C++的动态链接库.So文件 * void *pdlHandle; * pdlHan ...

  10. 汇编调用c语言函数 call printf,如何在汇编调用c语言函数?

    一. 参数传递的基本规则(ATPCS(ARM-Thumb Procedure Call Standard)) 1. 参数传递 二.汇编程序.C程序相互调用举例 1. C程序调用汇编程序 汇编程序的设计 ...

最新文章

  1. Hello World With JBoss Modules
  2. mysql 数据库还原后没有_MySQL数据库的备份还原至最新状态
  3. fatal error: alsa/asoundlib.h: 没有那个文件或目录错误解决办法
  4. 做虚拟化服务器的配资一致嘛,服务器虚拟化技术在校园网管理中的应用探讨.pdf...
  5. es6 类的私有属性_JavaScript ES6类中的私有属性
  6. JavaScript学习笔记:对象
  7. [C++] - Returning by const value
  8. 【概率论】3-4:二维分布(Bivariate Distribution)
  9. 指定init启动Linux内核,初看linux内核启动过程
  10. 同步与异步,如何解决线程安全问题—synchronized详解,对象锁与类锁,静态与非静态同步方法详解
  11. matlab深度DoF图像修复,windows10系统运行dnf提示client.exe损坏的图像解决方法
  12. 浏览器开启WebGL
  13. openwrt绑定ddns花生壳域名
  14. nyoj366 D的小L 全排列模板题
  15. S4不得不知道的SQL查询工具DB01
  16. 彼得.得鲁克与因果定律
  17. Android自定义View-简约风歌词控件
  18. 各类网线的有效传输距离
  19. java replica set_Kubernetes对象之ReplicaSet
  20. python打开本地浏览器_python如何实现打开浏览器

热门文章

  1. MySQL 入门(三)—— MySQL数据类型
  2. 资源编译器 rc .exe 的参数
  3. 老版资源嗅探浏览器 - 遨游浏览器稀有绿色版
  4. 车牌识别opencv_基于OpenCV 的车牌识别
  5. Java可视化编程【JFormDesigner安装教程】
  6. 2022年C语言程序设计题库习集带答案(史上最全版)
  7. 查看别人IP经典办法
  8. 心电图分析软件_动态心电图品牌排行榜
  9. eclipse下载主题
  10. python五子棋游戏代码实现