郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第7章 汇编语肓 与C/C++的混合编程

第7章
第 7 章

教学重点 第7章介绍实际应用当中, 常见的混合编程问题,重点 是参数传递方法 汇编言 √混合编程的两种方式 与0/0H+的混食程 √模块连接的约定规则 √模块连接的参数传递方法 √C++代码优化 HHH
教学重点 第7章介绍实际应用当中, 常见的混合编程问题,重点 是参数传递方法 ✓混合编程的两种方式 ✓模块连接的约定规则 ✓模块连接的参数传递方法 ✓C++代码优化

第7章 什么是混合编程 多种程序设计语言间,通过相互调用 参数传递、共享数据结构和数据信息 而形成程序的过程就是混合编程 >程序的大部分采用高级语言编写,以 提高程序的开发效率;在某些部分, 利用汇编语言编写,以提高程序的运 行效率
第 7 章 什么是混合编程 ➢多种程序设计语言间,通过相互调用、 参数传递、共享数据结构和数据信息 而形成程序的过程就是混合编程 ➢程序的大部分采用高级语言编写,以 提高程序的开发效率;在某些部分, 利用汇编语言编写,以提高程序的运 行效率

第7章 混合编程方法 嵌入式汇编 ■在CC++语言中直接使用汇编语言语句, ■简洁直观、功能较弱 >模块连接 ■两种语言分别编写独立的程序模块,分别 产生目标代码OBJ文件,然后进行连接, 形成一个完整的程序 ■使用灵活、功能强,要解决参数传递问题
第 7 章 混合编程方法 ➢嵌入式汇编—— ◼在C/C++语言中直接使用汇编语言语句, ◼简洁直观、功能较弱 ➢模块连接—— ◼两种语言分别编写独立的程序模块,分别 产生目标代码OBJ文件,然后进行连接, 形成一个完整的程序 ◼使用灵活、功能强,要解决参数传递问题

第7章 混合编程的关键问题 建立不同语言之间的接口 >在不同格式的两种语言间提供有效的通讯方 式,作出符合两种语言调用约定的某种形式 说明,实现两种语言间的程序模块互相调用 变量的相互传送以及参数和返回值的正确使 用
第 7 章 混合编程的关键问题 ➢建立不同语言之间的接口 ➢在不同格式的两种语言间提供有效的通讯方 式,作出符合两种语言调用约定的某种形式 说明,实现两种语言间的程序模块互相调用、 变量的相互传送以及参数和返回值的正确使 用

第7章 7.1 Turbo c嵌入式汇编方式 格式 asm操作码操作数 >举例 asm mov ax, as, asm pop ax; asm pop ds; asm ret asm push ds
第 7 章 7.1 Turbo C嵌入式汇编方式 ➢格式 asm 操作码 操作数 ➢举例 asm mov ax,ds; asm pop ax; asm pop ds; asm ret; asm push ds

第7章 若干注意事项 >操作码支持8086/8087指令或若干伪指令: db/dwdd和 extern >操作数是操作码可接受的数据:立即数、 寄存器名,还可以是C语言程序中的常量、 变量和标号等 >内嵌的汇编语句可以用分号“;”结束,也可 以用换行符结束 >使用C的注释,如/…*/ >正确运用通用寄存器、标号等
第 7 章 若干注意事项 ➢操作码支持8086/8087指令或若干伪指令: db/dw/dd和extern ➢操作数是操作码可接受的数据:立即数、 寄存器名,还可以是C语言程序中的常量、 变量和标号等 ➢内嵌的汇编语句可以用分号“;”结束,也可 以用换行符结束 ➢使用C的注释,如/ * … * / ➢正确运用通用寄存器、标号等

例7.2-1/2 *工702.C* #立nc1ude void upper(char *dest, char *src) asin Iov S1, SIC /*dest和sxc是地址指针*/ asm moy di, dest asm cld loop: asm lodsb /*C语言定义的标号*/ asm cmp al,'a' asm jb copy/*转移到c的标号*/ asm cmp al,'z' asi Ja copy /不是’a到z之间的字符原样复制*
/ * LT702.C */ #include void upper(char *dest,char *src) { asm mov si,src /* dest和src是地址指针 */ asm mov di,dest asm cld loop: asm lodsb /* C语言定义的标号 */ asm cmp al,'a' asm jb copy /* 转移到C的标号 */ asm cmp al,'z' asm ja copy /* 不是’a’到’z’之间的字符原样复制*/ 例7.2-1/2

例7.2-2/2 asm sub a1,20h/*小写字母转换成大写* copy: asm stosb asm and al, al /*C语言中,字符串用NU(0)结尾*/ asm inz loop main()/*主程序*/ char str[]=This started Out As Lowercase!i char chr [100]; upper(chr, str)i printf ("Origin string: ns\n",str)i printf("Uppercase String: \n%s\n",chr)i
asm sub al,20h /*小写字母转换成大写*/ copy: asm stosb asm and al,al /* C语言中,字符串用NULL(0)结尾 */ asm jnz loop } main() /* 主程序 */ { char str[]="This Started Out As Lowercase!"; char chr[100]; upper(chr,str); printf("Origin string:\n%s\n",str); printf("Uppercase String:\n%s\n",chr); } 例7.2-2/2

第7章 7.2 Turbo c模块连接方式 √要注意模块连接的约定规则 ■命名约定:汇编语言过程应采用c语言类型 ■声明约定 ■寄存器使用约定 存储模式约定:采用相同的存储模式 √参数传递是关键 ■通过堆栈传递入口参数 ■通过寄存器返回出口参数
第 7 章 7.2 Turbo C模块连接方式 ✓要注意模块连接的约定规则 ◼ 命名约定:汇编语言过程应采用C语言类型 ◼ 声明约定 ◼ 寄存器使用约定 ◼ 存储模式约定:采用相同的存储模式 ✓参数传递是关键 ◼ 通过堆栈传递入口参数 ◼ 通过寄存器返回出口参数
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第6章 32位指令及其编程.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第5章 高级汇编语言程序设计.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第4章 基本汇编语言程序设计.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第3章 汇编语言程序格式.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第2章 8086的指令系统.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第1章 汇编语言基础知识.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)课程介绍(主讲:钱晓捷).ppt
- 《3ds max学习课件》合成.ppt
- 《3ds max学习课件》修改命令面板.ppt
- 《3ds max学习课件》渲染基础.ppt
- 《3ds max学习课件》二维图形造型.ppt
- 《3ds max学习课件》Mental ray渲染器.ppt
- 《3ds max学习课件》三维几何体模型.ppt
- 《3ds max学习课件》贴图.ppt
- 《3ds max学习课件》材质.ppt
- 《3ds max学习课件》光度学灯光.ppt
- 《3ds max学习课件》标准灯光.ppt
- 《3ds max学习课件》3ds max 简介.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第11章 MCS-51与D/A转换器、A/D转换器的接口.ppt
- 《单片机原理及应用》课程教学资源(PPT教学课件)第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(期复习资料).doc
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第10章 应用系统设计及接口技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第1章 基础知识.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第2章 单片机的结构原理与简单应用.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第3章 8051指令系统.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第4章 汇编语言程序设计.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第5章 中断系统.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第6章 定时器/计数器.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第7章 并行扩展技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第8章 串行通信.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第9章 串行扩展技术.ppt
- 《C语言程序设计》课程教学资源:C语言输入输出函数(台安).ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十章 指针.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十一章 结构体.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十二章 位运算.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十三章 文件.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第一章 概述(主讲:台安).ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第二章 程序的灵魂—算法.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第三章 数据类型、运算符与表达式.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第四章 最简单的C程序设计—顺序程序设计.ppt