画脉冲波图形剖析Word文档格式.docx

上传人:b****5 文档编号:17982705 上传时间:2022-12-12 格式:DOCX 页数:18 大小:209.66KB
下载 相关 举报
画脉冲波图形剖析Word文档格式.docx_第1页
第1页 / 共18页
画脉冲波图形剖析Word文档格式.docx_第2页
第2页 / 共18页
画脉冲波图形剖析Word文档格式.docx_第3页
第3页 / 共18页
画脉冲波图形剖析Word文档格式.docx_第4页
第4页 / 共18页
画脉冲波图形剖析Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

画脉冲波图形剖析Word文档格式.docx

《画脉冲波图形剖析Word文档格式.docx》由会员分享,可在线阅读,更多相关《画脉冲波图形剖析Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

画脉冲波图形剖析Word文档格式.docx

4)不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计,成绩的考核按上机表现、答辩成绩及课程设计说明书来综合评定。

成绩分为优、良、中、及格、不及格五级分评定。

二、进度安排

第2周星期一8时:

00分——12时:

00分

星期二8时:

星期三8时:

星期四8时:

课题1.用“*”画菱形框

要求:

A、背景为蓝色、“*”为红色,菱形框画在屏幕中间,菱形中间为空格。

B、用户以十进制数形式输入菱形宽度和高度(格式同上)。

课题2.读入一个文本文件并以DEBUG中的D命令格式显示。

要求:

A、以DEBUG中的D命令格式显示一个文本文件。

B、文件名从键盘键入。

思路:

A、打开相应文件,读内容至程序缓冲区。

B、按要求显示。

课题3.文件加密程序

A、文件名从键盘输入。

B、加密密钥从键盘输入。

从原文件读取内容至缓冲区,对其加密后,重新写回文件原来的地方。

提示要点:

A、加密可使用“异或”操作。

B、相关中断为3DH,3EH,3FH,40H,42H号系统功能调用(INT21H)

课题4.编写一个时钟程序

A、驻留内存。

B、不影响其它程序运行。

C、把时钟信号显示在屏幕固定位置(最好为右上角)。

先从系统实时钟取得当前时间,每隔约0.05秒定时器向CPU发出一次8号中断请求,是一个硬中断。

窃取INT1CH中断服务程序。

课题5.画网格线

A、背景为蓝色、横线为红色、直线为黄色。

B、按用户输入的起点和终点坐标、列距和行距的大小画出任意条横竖线。

C、参数以十进制数形式输入,格式如下:

Pleaseenterstartingpoint(x1,y1):

XX,XX

Pleaseenterendingpoint(x2,y2):

XX,XX

Pleaseenterdistance(row,col):

课题6.画脉冲波图形

用户以十进制数形式从键盘输入脉冲高度、脉冲宽度和颜色参数(格式同上)后,以屏幕中间行为脉冲中间行,从左到右、满屏画出相应的脉冲波图形。

课题7.测量任意程序的运行时间

该程序驻留内存

DOS操作系统中,程序的调入运行及程序的终止均是通过相应的软中断来实现的。

若窃取相应软中断,记录下程序开始调入运行的时间及程序终止的时间,则可测量出该程序运行的时间。

与之相关的软中断分别为:

程序开始执行:

4BH号系统功能调用(INT21H)

程序结束:

INT20H

INT27H

00H、3lH、4CH号系统功能调用(INT21H)

课题8.计算比赛成绩

A、7个评委,每个评委给分范围为0~10分(整数)。

B、7个评委的给分中,去掉一个最高分和一个最低分,余下5位评委的平均分即为参加者的得分(精确到小数点后一位)。

C、将分数在屏幕中间位置处用红色显示出来。

目录

1.题目5

2.程序总体设计方案、思路5

3.程序设计框图5

4.源程序清单6

5.程序调试结果及分析12

6.设计总结14

7.课程设计评分表15

1.题目

课题3.画脉冲波图形

用户以十进制数形式从键盘输入脉冲高度、脉冲宽度和颜色参数

后,以屏幕中间行为脉冲中间行,从左到右、满屏画出相应的脉冲波图形。

参数以十进制数形式输入,格式如下:

Pleaseenterheigth:

XX

Pleaseenterwidth:

XX

Pleaseentercolor:

2.程序总体设计方案、思路

设计方案:

整个题目的过程可以分成参数的输入和利用输入的参数显示方波的过程,

所以可以把题目分成输入过程和显示两个过程。

输入阶段,设置三个字符串来显示输入提示语句,再设置三个变量来存放输入进来的值的二进制数,也就是要显示的方波的三个参数,因这三个参数输入的时候是用十进制的数制输入的,还必须用一个子程序将输入的十进制数转换成二进制数。

显示过程,在屏幕中央画一根线,然后利用640x480,16色图形显示方式,屏幕显示的方波高度范围为0到320,宽度范围为0到240,颜色选择为0到15。

然后再根据输入的方波参数显示方波图形。

思路:

因整个过程要调用图形显示,所以把代码段、数据段、堆栈段都放在同一个段内。

先提示输入的方波参数,再把输入的参数转换成二进制存储,最后通过输入的参数显示方波。

3.程序设计框图

图3.1

4.源程序清单

;

操作说明:

运行开始,首先要输入3个参数:

脉冲高度、脉冲宽度和波线颜色。

各项取值范围:

脉冲高度:

0~240

脉冲宽度:

0~320

波线颜色:

0~15(参见下方的颜色参数表)

数值位数满3位的,自动结束当前项输入,不必回车;

不足3位数的,

需按回车键结束当前输入。

CodeSegment

AssumeCS:

Code,DS:

Code

CREQU000DH

LFEQU000AH

KBBackEQU0008H

-------------------------------------

DarkColors(Foreground&

Background)

ConstantValue

BlackEQU0

BlueEQU1

GreenEQU2

CyanEQU3

RedEQU4

MagentaEQU5

BrownEQU6

LightGrayEQU7

LightColors(Foreground)

DarkGrayEQU8

LightBlueEQU9

LightGreenEQU10

LightCyanEQU11

LightRedEQU12

LightMagentaEQU13

YellowEQU14

WhiteEQU15

BlinkingEQU80H

功能:

显示指定地址(Str_Addr)的字符串

入口:

Str_Addr=字符串地址(要求在数据段)

用法:

OutputStr_Addr

用法举例:

OutputPromptStr

OutputMACROStr_Addr

leadx,Str_Addr

movah,9

int21h

EndM

-------------------------------------

输出回车换行

Enter_CTLFprocNear

pushax

pushdx

movah,02h

movdl,0dh

movdl,0ah

int21h

popdx

popax

ret

Enter_CTLFendp

取光标位置

出口:

DH=行号,DL=列号

GetCursorProcNear

PUSHAX

PUSHBX

PUSHCX

XORBX,BX

MOVAH,3

INT10H

MOVCursor_Row,DH

MOVCursor_Col,DL

POPCX

POPBX

POPAX

RET

Cursor_RowDB?

Cursor_ColDB?

GetCursorEndP

置光标位置

Cursor_Row=行坐标;

Cursor_Col:

列坐标)

SetCursorProcNear

MOVDH,Cursor_Row

MOVDL,Cursor_Col

MOVAH,2

SetCursorEndP

-------------------------------------

键盘输入一个N位的十进制数字,将其转换成二进制数并保存在指定的内存单元。

N=数字位数;

di=保存输入的数字首地址

转换后的二进制数保存在di所指的单元

Input_DigitProcNear

pushcx

pushbx

pushdi

leadi,@@Save_Tmp

cld

movcx,N

@@Input:

callGetCursor

movah,1

cmpal,CR

jz@@ASC_Dec

cmpal,KBBack

jz@@KB_Back

cmpal,'

0'

jb@@KBBack

9'

ja@@KBBack

jmp@@Save_Dig

@@KB_Back:

decCursor_Col

inccx

decdi

@@KBBack:

callSetCursor

jmp@@Input

@@Save_Dig:

andal,0fh

stosb;

保存

loop@@Input

@@ASC_Dec:

movax,cx

popcx

popsi

subcx,ax

xorbp,bp

xordx,dx

xorax,ax

jcxz@@Save_Ret

deccx

jcxz@@One_Digit

movbx,10

@@Mul_Ten:

lodsb

cbw

addax,bp

mulbx

movbp,ax

loop@@Mul_Ten

@@One_Digit:

lodsb

@@Save_Ret:

popdi

stosw

popbx

@@Save_Tmpdb16dup(?

Input_DigitEndP

Prompt_Str1db'

Pleaseinputpulsehight:

$'

Prompt_Str2db'

Pleaseinputpulsewidth:

Prompt_Str3db'

Pleaseinputlinecolour:

Nequ3

Hight_Pulsedw?

Width_Pulsedw?

Colou_Pulsedw?

Start:

pushcs

popds

popes

OutputPrompt_Str1

leadi,Hight_Pulse

callInput_Digit

callEnter_CTLF

OutputPrompt_Str2

leadi,Width_Pulse

callInput_Digit

callEnter_CTLF

OutputPrompt_Str3

leadi,Colou_Pulse

movax,12h

int10h

movbp,640

xorbh,bh

xorcx,cx

movdx,480

shrdx,1

movah,0ch

moval,byteptrColou_Pulse

L0:

int10h

inccx

decbp

testbp,bp

jnzL0

movbp,Hight_Pulse

L1:

decdx

jnzL1

Pulse_Wave:

movbp,Width_Pulse

L2:

cmpcx,639

jaPause

jnzL2

movbp,Hight_Pulse

shlbp,1

L3:

incdx

jnzL3

movbp,Width_Pulse

L4:

jnzL4

L5:

decdx

jnzL5

jmpPulse_Wave

Pause:

movah,3

Exit_Proc:

movah,4ch

CodeENDS

ENDStart

5.程序调试结果及分析

图5.1调试执行窗口1

图5.2调试执行窗口2

当程序运行时,执行窗口提示输入参数,如图5.1所示。

当输入上述参数时,如图5.2,满屏显示的是高度为20,宽度为20,以蓝绿色显示的脉冲图案。

图中包含了多个完整的方波图形。

是参数合理状况下的脉冲图形。

当输入参数超过范围时,屏幕显示不出一个完整的图案,因为使用的是640x480的显示,当输入的参数过大,屏幕无法准确的显示。

这时只要把参数适当的调下,就可以看到完整的图案。

图5.3脉冲波形图

图5.3为输入参数按回车键后得到的满屏脉冲波图形。

6.设计总结

通过这次课程设计学到的不仅是知识,而是解决困难的能力。

在这次的课程设计中,遇到了以前实验时没有碰到过的很多困难,因为之前没有做过汇编课设,在刚开始的时候,遇到了很多困难,感觉到自己根本无从下手。

但通过老师的讲解以及同学的帮助,终于完成了任务。

通过这次课程设计,让我对汇编语言的基本语法和常用的中断有了更加深入的了解。

总的来说,课程设计就是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节。

当今计算机应用在生活中可以说是无处不在,因此掌握一些编程语言对我们来说是基本的要求,也让我感觉到要掌握好一门语言,必须通过长时间的积累、运用和思考,这样才能学到真正的知识。

不管怎么说,我觉得最重要的是能有这样的一次课设经历让我在遇到困难的时候学会了怎么解决问题。

计算机与通信学院课程设计评分表

课程名称:

汇编语言程序设计

项目

评价

设计方案的合理性与创造性

设计与调试结果

设计说明书的质量

答辩陈述与回答问题情况

课程设计周表现情况

综合成绩

教师签名:

日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1