计算机绘图

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机绘图 Prepared on 22 November 2020

计算机绘图

目目录录::

11::绪绪论论 说明本课题的意义.目的.研究范围及要达到的技术要求

2:方案 说明设计原理并进行方案选择,阐明为什么要选择这个方案以及所采用的方案的特点

3:过程论述

4:结果分析

5:结论

正文:

1:绪论

计算机绘图可以增加学生对IBM-PC 汇编语言的兴趣,增强学生对书本知识的理解和应用能力

要求熟练掌握INT 21H ,INT 16H ,INT 10H 各功能项的功能 2:方案

指定一矩形在屏幕的左上方或右下方的坐标,画出这一矩形,移动光标键,该矩形可以缩放或变形

该方案是以窗口控制程序完成工作和光标控制屏幕窗口。首先清除屏幕,紧接着在屏幕中心生成一个小窗口,其左上角的行列坐标为(10,30),右下角坐标为(15,40),光标定位在(0,0)。当按动光标控制键时,光标能上下左右移动,当光标移动到指定的

位置上后,按下HOME键,此时光标的最后位置或作为窗口左上角坐标,或移动坐标扩大或缩小屏幕窗口。

3:过程论述

编写这个程序时,因多次要用到清屏.生成窗口.定位.清屏.光标定位等功能,因此采用宏汇编技术,把这些功能分别定义成宏指令,postc 等,这样,在编写程序时,这些定义后的宏指令就和其它汇编语言指令一样直接写在程序中。

宏指令是8086汇编语言中提供的一种简化程序编写的手段。编写程序是经常会遇到这样的现象:同一个程序段需要在程序中出现多次,或者程序中有几段指令列中除了个别符号不相同外,总体上是一样的。“宏”正可以用来实现“文字块”操作的功能,不仅如此,使用宏还可以克服复制无法解决的困难:如果块复制后发现其中的内容有错误,则要对重复出现的每一处都进行修改。程序中使用宏分为定义和调用两部分。宏定义用来说明那些指令或伪指令是将在程序段;宏调用是用来告诉汇编程序,在翻译前先把宏定义中的程序段复制一遍。

宏定义:

宏定义是用一组伪操作来实现,格式为:

宏名 MACRO [哑元表]

.

.(宏体)

.

ENDM

说明:

(1)“宏名”是一个标识符,一个程序中可以定义多个宏,对每一个宏必须以不同的标识符命名,且宏名不能与变量.标号.段名等标识符同名。

(2)汇编语言规定,宏定义起始标记MACRO前面必须写宏的名字,而结束标记ENDM的前面却不允许写任何内容,写在起始标记之间的部分称为宏体,宏体部分通常是一段程序中需要重复使用的指令序列。

(3)宏定义仅仅用来告诉汇编程序,将来宏调用时复制的对象是什么,宏定义中的程序段并不是程序的一部分,也就是说,如果程序中定义了一个宏而没有调用它,汇编程序将忽略宏定义。

(4)宏定义可以放在程序的任何地方(但要在它的第一次调用之前),它可有可无,但习惯上总是把宏定义写在程序的最前面。(5)哑元表给出了宏定义中所用到的形式参数,它可有可无,当有多个形参时,每个形参之间要用逗号隔开。

宏调用

定义后的宏名又为宏指令,就可以在源程序中调用宏了,调用格式为:

宏指令名[实元表]

宏调用的方式是在源程序中需要复制宏体的地方写宏的名字。宏名单独占一行,当源程序被汇编时,它必须与宏定义中的宏名一致,

其后的实在参数要与宏定义的形参数按位置一一对应。如果实参的个数多于形参的个数时,多余的实参可以被忽略。如果实参的个数少于形参个数,则缺少的实参被处理为空白,实参可以与形参同名。

清除屏幕用的是存储器映射法,即连续往显存个单元中写入0,本程序中清除屏幕使用BIOS 10H 的卷屏功能AH=6或AH=7,给定左上角参数为(0,0),右下角参数为(24,79),属性为07,然后调用10H ROM 例行程序,则完成清除的工作。

清清除除屏屏幕幕

INT 10H 的06功能处理清除屏幕或滚动。清楚全屏或部分屏幕显示,可在全屏幕范围的任意位置开始和任意位置结束,设置以下寄存器:

AH=06H 功能号

AL=滚动的行数,或00H 全屏为空白

BH=属性值(颜色.闪烁)

CX=起始行:列

DX=结束的行:列

CX 和DX 共同定义了滚动的屏幕区(或窗口),AL 指明了上卷的行数。如果要清除整个屏幕,就指定CX 中的起始行:列为00:00H ,DX 中的行:列为18:4FH 。

下例中的属性71H 设置整个屏幕为白色背景(属性为7)和蓝色前景(属性为1):

MOV AX,0600H

MOV BH,71H

MOV CX,0000H

MOV DX,184FH

INT 10H

在文本方式下设置彩色属性并将全屏上卷一行:

MOV AH,0601H

MOV BH,61H

MOV CX,0000

MOV DX,184FH

INT 10H

注意不要错误的设置右下角屏幕位置大于184FH

用INT 16H的功能0,重置屏幕显示方式也能达到清除屏幕的效果。

键盘输入使用INT 16H的功能0,如键入一个光标移动键,则控制光标在屏幕25*80的范围内移动;如果按动HOME键(扫描码为47H),则以当前光标位置作为新设定的坐标生成新的窗口;如果键入escape键,则退出本程序返回DOS;若键入其它可显示字符,则可在新窗口范围内显示,若显示字符超过窗口的右边界,窗口则上卷一行,字符又从下面一行开始显示

设置光标

该操作在文本方式或图形方式下,按照行:列坐标在屏幕上的任何位置设置光标(功能13H也设置光标),该操作要设置这些寄存器:

BH=页号(默认页为0),DH=行,DL=列

下面的为在第12行,第30列,0页设置光标:

MOV AH,02H

MOV BH,00

MOV DH,12

MOV DL,30

INT 10H

每页的光标位置都独立于其他页的光标。该操作没有返回值。虽然在图形方式下光标是看不见的,仍然可以设置。

光标位置显示字符:

功能INT 10H 的0AH和09H都能显示字符,唯一的区别是:功能09H设置属性,而功能0AH使用当前的属性值。

INT 10H的功能0ah代码:

MOV AH,0AH

MOV AL,CHAR

MOV BH,PAGE#

MOV BL,VALUE

MOV CX,REPETITION

INT 10H

相关文档
最新文档