摘要: C语言是一种高级的面向过程的开发语言,汇编语言是一种低级的面向机器的编程语言。两者在程序设计开发方面各有优劣,目前两者的混合编程得到了广泛的应用。本文通过具体的实例,说明了混合编程的基本方法,为C语言应用开发人员提供方便。

关键词: C 语言;汇编语言;混合编程

中图分类号:TP313 文献标识码:A 文章编号:1006-4311(2014)24-0231-02

0 引言

汇编语言是一种面向机器的语言,其优点是运行速度快,占用存储空间小,可直接对硬件进行控制。缺点是编写、调试困难、移植性差。C语言简洁、灵活、库函数丰富、调试方便、移植性好,目前已被广泛地应用于系统软件和应用软件的开发中,为了发挥各自优势,取长补短,采用混合编程。大部分程序,如界面、人机接口(外壳程序)、数据处理等用C语言编写,以提高程序的开发效率。而某些程序,如需要缩短程序的运行时间,或需要对硬件进行直接操作,或需要利用操作系统的某些功能模块,或频繁使用的程序、或需要占用内存空间少的程序(内核程序),则用汇编编写,以提高程序的运行效率。

1 嵌入式汇编

嵌入式汇编也称行内汇编,源程序中直接插入汇编语句。汇编语句可直接访问C程序中定义的常量、变量、函数。不必考虑二者之间的接口,方便编程。

1.1 嵌入式汇编语句的格式

格式:asm操作码 操作数[;或换行]

其中:操作数可以是汇编语句中的立即数、寄存器、表达式等还可以是C中的常量、变量、标号等。分号;是汇编语句结束符,并非注解,要用注解,用C的注解。如下例

所示。

1.2 汇编语句访问C的数据

嵌入的汇编语句可以访问C语言程序中的任何标识符,包括变量、常量、标号、函数名、寄存器变量、函数参数等。如下例所示。

1.3 汇编语言与C语言接口规则

1.4 编译过程

命令行键入命令:TCC-B-Iinclude-Llib 文件名.c即可. TCC会自动调用TASM.EXE和TLINK.EXE,并且TLINK.EXE能正确的找到需要的.obj和.lib文件,要保证TC目录下存在TASM.EXE文件。如果单步编译,可能会碰到很多的问题,主要是TLINK.EXE不会自己去找.obj和.lib文件。该命令的功能是:.C编译TCC.ASM汇编TASM.OBJ连接TLINK.EXE。

2 Turbo C模块连接方式

C、汇编程序各自编程,各自编译,然后连接在一起。

2.1 汇编语言与C语言接口规则

①命名约定:汇编的名字前加一个下划线,C的名字前不加下划线(编译后内部自动加),以确保两个模块内部名字一致。

3 结语

混合编程,主要涉及接口,汇编调C的函数、全局变量。C调汇编的函数、变量。本文对此做了浅述。

参考文献:

[1]谭浩强.C语言程序设计[M].清华大学出版社,2004.

[2]丁爱萍.C语言程序设计实例教程[M].西安电子科技大学出版社,2006.

[3](美)布鲁姆著,马朝晖译.编语言程序设计[M].北京:机械工业出版社,2006.

c语言汇编混合编程方法,C语言和汇编语言混合编程方法相关推荐

  1. c语言 汇编中断程序,ARM7 C语言嵌入汇编开关中断

    __inline void IRQEnable(void) { int tmp; __asm { MRS tmp,CPSR       ///读取CPSR的值 BIC tmp,tmp,#0x80 // ...

  2. keil中看c语言汇编,keil中查看C语言对应汇编语言问题

    在keil上运行一段GPIO的程序,查看C语言及对应的汇编程序如下: 0x0800028A 2120      MOVS     r1,#0x20 0x0800028C 4811      LDR  ...

  3. 汇编c语言混合编程pdf,C语言及汇编语言混合编程的方法.pdf

    维普资讯 1993矩 化 工 电 子 计 算 第 2期 C语言与汇编语言混合编程的方法 f/1) (南京犬李葛于如丽顶吾学系) 摘 要 本文通过实例阐述了当前较为漉行的两种c语盲 (Microsoft ...

  4. keil4c语言和汇编混合,keil C语言与汇编语言混合编程

    keil C语言与汇编语言混合编程 1. C语言中嵌入汇编 1.在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码: #pragma ASM ; Assembler Code Here #pragm ...

  5. 嵌入式c语言汇编混合编程,嵌入式C语言和汇编语言的混合编程

    此文章简单介绍 单片机 C语言和汇编语言混合编程的例子.主要用单片机汇编语言编写DS1302的底层驱动,在C语言里通过调用汇编语言,从而实现C和汇编的混合编程. ;汇编语言源文件 ;========= ...

  6. c语言混合编程 pdf,C语言与汇编语言混合编程的方法.pdf

    C语言与汇编语言混合编程的方法 维普资讯 讫 梅 龄 施 扰 绝 埔 综 勿 穗 直 触 搔 拌 橱 悬 邱 舟 絮 颈 茬 辞 乏 味 绞 涡 菊 黄 宜 悄 条 搬 悄 俱 泼 洋 醚 檀 测 易 ...

  7. c语言与汇编语言混合编程实验,C语言与汇编语言混合编程实验

    混合编程方法: 模块链接法 汇编指令嵌入法 1: 模块链接法则 模块链接法是指分别用汇编语言和C语言实现独立的模块(或子程序),再用链接程序把各模块生成的obj文件连接成一个可执行程序. 1:C语言调 ...

  8. C语言数据交换算法和伪指令,补充:单片机c语言与汇编语言混合编程.ppt

    补充:单片机c语言与汇编语言混合编程 reg51.h和reg52.h:实质上是没有区别的,都是一些特殊功能寄存器的申明 sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0 ...

  9. 单片机汇编语言编程_单片机编程用C语言还是汇编?

    单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂.目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求.单片 ...

最新文章

  1. Go modules基础精进,六大核心概念全解析(上)
  2. 软件开发环境-集成机制
  3. Dropwizard入门及开发步骤
  4. 蓝桥杯 k倍区间 前缀和
  5. 机房合作(一):我怎样做组长(敢于承担责任)
  6. WebSocket 实现前后端通信的笔记
  7. 微信小程序本地存储存储_如何利用本地存储构建快速的应用程序
  8. 人工智能芯片与传统芯片的区别
  9. python:容器、迭代器、生成器 简单介绍
  10. [9018_1563][bzoj_2144]跳跳棋
  11. 利用青龙面板自动化跑聚看点脚本
  12. 修改Ubuntu的键盘映射
  13. 城市大脑一网统管数据中台建设方案
  14. Java期末大作业-工资系统平台(实验报告内附代码)
  15. 【JavaEE】Day11-多线程
  16. AFMG全球战略发布会,一场与豪华纯电智能跑车的零距离之约
  17. 汇顶科技外包java_汇顶科技深度分析
  18. 常用网络广告类型:CPC,CPA,CPS,CPM,CPT,PPC详解
  19. mediaplayer android mp3 url,Android MediaPlayer 播放音频
  20. 使用你们的AirDisk产品会不会泄露文件给你们,会不会将文件数据传送到你们服务器?

热门文章

  1. 89. Gray Code - LeetCode
  2. bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?
  3. python Gunicorn
  4. Mongodb 安装和启动
  5. html5 的百度地图连接
  6. [转载]使用命名管道实现进程间通信
  7. 数据eda_关于分类和有序数据的EDA
  8. 朴素贝叶斯和贝叶斯估计_贝叶斯估计收入增长的方法
  9. 离群值如何处理_有理处理离群值的局限性
  10. 如何使用HTML5,JavaScript和Bootstrap构建自定义文件上传器