汇编语言个c语言的图形处理

上传人:j****9 文档编号:45526135 上传时间:2018-06-17 格式:DOC 页数:4 大小:34KB
返回 下载 相关 举报
汇编语言个c语言的图形处理_第1页
第1页 / 共4页
汇编语言个c语言的图形处理_第2页
第2页 / 共4页
汇编语言个c语言的图形处理_第3页
第3页 / 共4页
汇编语言个c语言的图形处理_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《汇编语言个c语言的图形处理》由会员分享,可在线阅读,更多相关《汇编语言个c语言的图形处理(4页珍藏版)》请在金锄头文库上搜索。

1、汇编语言和汇编语言和 C C 语言在图形处理中的综合应用语言在图形处理中的综合应用汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一 种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的 语言。汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编 器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如 MASM, TASM 等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、 抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指 令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语

2、言来编写 windows 的应用程序也是可行的,但这不是汇编语言的长处。汇编语 言的长处在于编写高效且需要对机器硬件精确控制的程序。 随着计算机与各相关学科的交叉促进,计算机图形在各领域的应用越来越 广泛。计算机图形的广泛应用对图形的处理技术提出更高的要求,尤其是在存 取效率与质量方面。C 语言提供了丰富的图形函数且开发效率高,但在要求执 行速度快, 占用空间少或要求直接控制硬件的场合, 汇编语言就可以提高程 序的运行效率。 充分发挥两种语言的优点,实现两种语言之间的混合编程,是 解决问题的有效方法。本文以画直线为例,讨论汇编语言与 C 语言在图形处理 过程中的综合应用技术。随着 3G 时代的

3、到来,计算机形处理的信息量越来越 大, 处理的技术也越来越复杂。 衡量图形处理的标准, 不仅取决于质量,还 取决于存取效率。图形的质量与分辨率,每点位数、 颜色定标及校正等因素有 关,存取效率与在处理过程中 所消耗的时间有关。计算机处理图形的方式,可 以采用 C 语言,也可以采用汇编语言。作为一种高级语言,语言毫无疑问是杰 出的,C 它的功能丰富、表达能力强、使用灵活、开发效率高,因而比汇编语 言使用更为广泛。 通常在软件开发过程中,大部分 程序采用高级语言编写, 以提高程序的开发效率; 但在要求执行速度快、占用空间少或要求直接控制硬 件的场合, 则利用汇编语言编写,以提高程序的运行效率。汇编

4、语言是一种面 向机器的语言,其特点是运行速度快、占用存储空间小, 可直接对硬件进行控 制,在一些实时控制的场合, 有着不可替代的作用。然而汇编语言也有它的不 足,如编写及调试相对高级语言程序来说要困难、复杂一些,尤其在进行数据 处理、数值的混合运算时更是如此。本文将重点探讨 C 语言和汇编语言在图形 处理的综合编程技术, 发挥它们各自的优势,提高图形的处理效果。 C 语言程序中调用汇编语言程序进行混合编程时,一个任务往往被分为若 干个功能模块, 每个模块以函数或子程序的形式存在,根据每一模块的特点选 用适合的语言编程,然后使用相应的编译系统对其进行编译形成目标文件,最 后将多个目标文件连接在一

5、起形成 一个完整的可执行文件。汇编语言与 C 语 言混合编程,需要解决四个问题: 一是存储模式的约定; 二是函数名的约定;三是汇编语言与 C 语言之间的参数传递;四是编译方法。 2.1 存储模式的约定 C 语言共有 6 种不同的存储模式: 微模式 Tiny、 小模式 Small、中模式 Medium、紧凑模式 Compact、大模式 Large、 巨模式 Huge。混合编程时必须保持汇编语言和 C 语言的存储模式一致。在汇编语言中 使用伪指令Model*,表示 在汇编语言中采用的存储模式,其中*表示上 述 6 种模式 中的一种。若 C 采用小模式,则在汇编语言中要使用。 2.2 函数名的约定

6、编译系统在对 C 源程序编译时,会在其中的变量名、 函数名前面加下划线。为使连接后的程序保持一致性,被 C 语言调用的汇编子 程序中,所有标识符都要加下划线。在 C 语言调用的汇编子程序中,所有标识 符都要加下划线;在 C 语言中,C 对所要调用的汇编子程序中的函数、变量, 都要 用 Extern 伪命令予以说明,一般将其放在各函数体外部。 同时,为了 使汇编语言的标识符能在 C 语言中可见,必须 用 Public 操作符定义标识符。图形方式下,显示屏幕由若干行和列的像素点组成。运用汇编语言操作像 素的方法共有两种:一是利用 BIOS 功能调用;另外一种是直接写屏。各种显示 模式在显示缓冲区存

7、储方式上的明显差异,操作像素方法的难易程度相差也很 大。同时,图形方式下的直接写屏较为复杂,在使用 MOV 指令将像素信息写入 显存之前,需要首先设置 VGA 接口内的“图形控制寄存器” ,所以,不采用直接 操作显示缓冲区的办法来达到改变显示像素的目的,最好是通过 BIOS 内的中断 功能来实现相应的功能,这样,所编写的程序能很方便地适应不同的图形显示 模式。INT 10H 提供了图形方式下的读像素和写像素的两项功能。AH = 0CH,写像素入口参数:AL = 像素值,BH = 显示页返回参数:无AH = 0DH,读像素入口参数:BH = 显示页,CX = X 坐标,DX=Y 坐标返回参数:A

8、L = 像素值下面的实例运用汇编语言在屏幕上画一条直线,直线的参数起始坐标, 直线长度以及颜色,是通过 C 语言函数模块传递给汇编语言函数。以下是程序 清单及其简要说明。首先,在 YLIB.H 文件里对写像素宏定义。WRITE_PIXEL MACRO PAGE1,ROW,COLOUM,COLORMOV AH,OCHMOV AL,COLORMOV BH,PAGE1MOV DX,ROWMOV CX,COLOMNINT 10HENDM汇编语言源程序画直线程序,如算法1所示。;MASML.ASM.MODEL SMALLINCLUDE YLIB.H.DATAOLDMODE DB ?X DW ?Y DW

9、?LENG DW ?COLOUR DB ?.CODEPUBLIC _LINE ;子程序:_LINE PROC L1:PUSH CXPUSH BP WRITE_PIXEL 0,X,Y,MOV BP,SP COLOURMOV AL,BP+4 INC XMOV COLOUR,AL POP CXMOV AX,BP+6 LOOP L1MOV LENG,AX MOV AX,BP+8 POP BPMOV Y,AX RETMOV AX,BP+10 MOV AH,4CH MOV X,AX INT 21HMOV AH,0FH _LINE ENDPINT 10HMOV OLDMODE,ALSETMODE 12HMO

10、V CX,LENGMOV DX,YEND算法1直线程序其次,在 C 语言中调用汇编语言,如算法2所示。#include “stdio.h”extern void line(int row,int column,int len,int color) ;main()line(100,100,200,5) ;line(150,150,50,6) ;算法2 调用程序再次,编辑工程文件,如算法3所示。masml.objcline.c算法3 工程文件最后,按 F9运行程序。C 语言和汇编语言相互交叉调用,进行参数传递,共享数据信息和数据结 构,使由此开发的软件更实用,更安全可靠,尤其是在计算机图形方面。它们 的综合应用,使开发和编程工作达到事半功倍的效果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号