版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 微型计算机原理及应用微型计算机原理及应用课程设计课程设计图形画法姓名院系信息学院自动化系班级电气 1081学号指导教师时间2010 年 12 月 29 日目目 录录摘要 .iintroduction.ii1引言.11.1课程设计的目的.11.2课程设计的内容.11.3设计要求.12设计过程.22.1设计规划.22.2程序流程图.22.3程序及注释.33仿真及调试.64结束语.74.1实验总结.74.2展望.7参考文献.8摘要微型计算机原理与应用是通过学习 8086 处理器,理解并熟悉微型计算机的结构,组成,最终能通过搭建电路和编写程序来实现控制和计算等操作。本设计通过学习用汇编语言编写一个屏
2、幕绘图程序,在屏幕上绘制一个标准的圆。通过使用系统功能调用 int 10h 绘图指令来实现坐标画图。通过一定的算法,计算出圆的点所在的位置,然后在对应坐标下用 int 10h 来打点。程序在 emu8086 仿真软件上编写和仿真。关键词:微型计算机;8086 处理器;汇编语言;画圆;int 10hintroductionmicrocomputer principle and application is through learning, understanding and familiar 8086 processor microcomputer structure, composition
3、 and eventually through constructing circuits and write a program to realize control and computational operation. this design by learning to use assembly language to write a screen drawing routines, on the screen to draw a standard circles. by using the systematic function calls int 10h drawing inst
4、ructions to achieve coordinates drawing. through certain algorithm, compute the circular point location, then the corresponding coordinates with int 10h to rbi. emu8086 simulation software program in the compilation and simulation.keywords: microcomputer principle and application;8086cpu; assembly l
5、anguage; cycle; int 10h;图形画法电气 1081,200811631114,霍兆权指导教师:张瑛1引言微型计算机简称“微型机” 、 “微机” ,由于其具备人脑的某些功能,所以也称其为“微电脑” 。是由大规模集成电路组成的、体积较小的电子计算机。它是以微处理器为基础,配以内存储器及输入输出(i0)接口电路和相应的辅助电路而构成的裸机。把微型计算机集成在一个芯片上即构成单片微型计算机(single chip microcomputer)。汇编语言(assemblylanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(memoni)代替操作码,用地址符号(symb
6、ol)或标号(label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。本设计用的 int 10h 指令,是由 bios 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 int 10h 内。使用 int 10h 中断服务程序时,先指定 ah 寄存器编号,该编号表示欲调用的功用,当一切设定好之后再
7、调用 int 10h。1.1课程设计的目的通过自己完成一个汇编程序设计,熟悉并掌握微型计算机的编程控制方法和设计流程,学习如何通过微型计算机完成一项工作。通过熟悉汇编指令,可以加深对微型计算机面向机器的特点。1.2课程设计的内容图形画法,通过画一个圆,掌握使用 int 10h 系统功能指令显示的方法;通过学习圆的点的位置计算,熟悉用汇编编写计算程序的方法。1.3设计要求在显示器上画出规则的图形(圆形)2设计过程2.1设计规划本设计采用 int 10h 功能号为 12 的绘图功能,该功能简介如下:ah=0ch/int 10h 是在绘图模式中显示一点 ( 也就是写入点像,write graphic
8、s pixel ),而 ah=0dh/int 10h 则是读取点像 ( read graphics pixel )。写入时,要写入位置 x 座标存于 cx 寄存器,y 座标存于 dx 寄存器,颜色存于 al 寄存器。和文字模式相同,萤光幕上的 y 座标是最上面一列为零,越下面越大,x 座标则和数学的定义相同。那么,可以采用坐标打点的方法,先把圆要画的点先计算出来,然后按点来作图。应为圆的四象限对称关系,通过计算一个象限的坐标,然后用坐标对称法来把其余象限也画出来。由于该功能的坐标为屏幕上方为 y 轴起始值,x 轴位于屏幕中线。所以,得到的圆的点的坐标值还要通过坐标平移才能对应正确的屏幕坐标。位
9、置算法可以采用 x2+y2=r2 来判断,可以使用扫描的方法,x 先从 0 开始,把y 值从半径开始,通过判断 x2+y2=r2 来确定该 y 值是否满足近似在圆上,不满足y 减一,直到找到 y 满足上式为止。找到该点的之后,x 自加一,继续找下一点。由于 x 越大,打的点越分散,需要交换坐标轴再画一次。2.2程序流程图初始化圆的坐标起始点开始通过计算x2+y2=r2得坐标的增量,保存相对的圆点坐标值xx,yy通过坐标初值减增量得到屏幕上四象限的坐标值显示四象限的四个点判断是否已经把扫描到 x=r交换坐标轴,清除 xx,yy判断是否已近完成第二次绘图结束2.3程序及注释程序及注释如下:;*;*
10、画圆程序(cycle)*;*finished by fox*;*data segment x1 dw 320 ;预设圆点 x 坐标 x2 dw 320 y1 dw 140 ;预设圆点 y 坐标=(y1-y2)/2 y2 dw 340 color db 6 xx dw 0 ; yy dw 100 ;预设圆半径 count dw 0 ;坐标变化差值 pow dw 10000 ;半径 r2 值 cmp1 dw 420 ;第一次画圆完成判断值 cmp2 dw 340 ;第二次画圆判断值 exit_text db cycle has finished,press any key to continue.
11、$ data endsstack segment stack dw 100 dup(?) stack ends code segment assume cs:code, ds:data,ss:stack start: mov ax,data mov ds,ax mov ax,12h int 10h ;- go1: ;画圆的主程序 call judge ;判断 x2+y2 是否小于 pow,即圆的半径,已设为 100 mov di,count add y1,di ;圆上半部分的 y 坐标加计算偏移值 sub y2,di ;圆下半部分的 y 坐标减计算偏移值 call doit ;调用画图子程序
12、mov ax,x1 cmp ax,cmp1 ;判断第一次画圆是否完成 je go5 ;完成交换坐标 yx 再画一次 inc x1 ;x1+ dec x2 ;x2- jmp go1;- go5: ;交换 x 与 y 坐标轴 mov xx,0 mov yy,100 mov x1,420 mov x2,220 mov y1,240 mov y2,240 go4: ;继续画一个圆 call judge mov di,count sub x1,di add x2,di call doit mov ax,y1 cmp ax,cmp2 ;判断画圆完成,完成运行结束程序 je exit inc y1 dec
13、y2 jmp go4 ;-judge proc ;判断 x2+y2 是否小于 pow,即圆的半径,已设为 100 pusha mov count,0 go2: mov ax,xx call mul1 ;把 x 坐标求平方 mov bx,ax mov ax,yy call mul1 ;把 y 坐标求平方 add ax,bx cmp ax,pow;比较 x2+y2 与半径的平方 jna go3 ;小于或等于 dec yy ;把 yy 坐标减一,找下一点 inc count jmp go2 ;- go3: inc xx ;把 x 坐标加一,画下一个 x 的点 popa ret endp ;-doit
14、 proc ;调用 int 10h 来画圆 pusha ;画第一象限部分 mov ah,12 ;ah=0ch/int 10h,在绘图模式中显示一点 mov al,color ;设置图片颜色 mov dx,y1 ;设置绘图 y 坐标 mov cx,x1 ;设置绘图 x 坐标 pusha ;画第二象限部分 int 10h popa mov cx,x2 pusha int 10h popa ;画第三象限部分 mov dx,y2 pusha int 10h popa ;画第四象限部分 mov cx,x1 int 10h popa ret doit endp ;-mul1 proc ;把 cx 的值平方
15、 push bx push cx push dx mov cx,ax mul cx pop dx pop cx pop bx ret mul1 endp ;- exit: lea dx,exit_text;输出推出提示信息 mov ah,9 int 21h mov ah,1 int 21h ;等待键盘输入 int 20h ;返回系统 code ends end start ;- code ends end start3仿真及调试通过仿真发现,只画一次圆的效果不好,只有 x 较小时效果好,而当 x 变大,打的点越分散,如图 3.1图 3.1而通过交换坐标轴,也就是以屏幕 y 轴来扫描,就可以把比
16、较分散的那部分补画好,如图 3.2图 3.24结束语4.1实验总结本设计通过查找相关书籍,网上查找相应的例程,通过阅读例程和优化例程来成功实现绘制一个比较标准的圆。整个设计关键点是计算圆的起始坐标值、坐标平移和 int 10h 的功能调用。这需要一定的数学知识。通过这次设计,使我提高了编程的能力,特别是对程序改错的能力。编写一个程序,一定要有清晰的程序执行流程,这不仅可以更有效的按程序的流程图来编写程序,而且可以清晰的那些执行过程是循环,可以使用子程序来减少编写程序的工作量和程序的大少。一个比较大的程序,需要按程序块的编写方法来逐步完成整体设计,而不能一蹴而就,这样,就不好调试和发现程序中的问题。这次设计用到了不少编程的思想,如子程序调用,程序参数传递等等,对熟悉课本知识和以后的设计有很大的帮助。4.2展望本设计通过计算圆在点的坐标的值来来绘图的,虽然
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学大四(医学检验技术)临床生物化学检验综合测试试题及答案
- 励志大气渐变努力拼搏工作总结模
- 蓝神奇的植物学生植物培训
- 工程月度安全培训课件
- 制砖厂岗位培训课件
- 工程建设安全培训会课件
- 成人乙肝疫苗加强接种策略
- 贵州省铜仁市碧江区2023-2024学年七年级上学期期末英语试题(含答案)
- 慢阻肺患者AI呼吸管理方案
- 创意厨艺餐饮活动方案
- 2025年及未来5年中国电线电缆市场供需格局及未来发展趋势报告
- 电动汽车电池包结构安全性分析-洞察及研究
- 2026-2031中国户外用品行业现状分析及前景预测报告
- 贵州省凯里一中2025年高二上数学期末联考试题含解析
- 2025年电子商务运营成本分析可行性研究报告
- 婚介所红娘技能培训资料汇编
- 人教版(2024)三年级上册数学总复习第4课时 图形的认识与测量课件
- 2025年汽车维修行业汽车维修行业维修企业应对市场变化的策略可行性研究报告
- 服装导购培训专业知识内容课件
- 江苏省苏州工业园区星澄学校2026届数学九上期末统考试题含解析
- 中国法制史试题题库(附答案)
评论
0/150
提交评论