教务管理数据库系统及画脉冲波形图课程设计报告_第1页
教务管理数据库系统及画脉冲波形图课程设计报告_第2页
教务管理数据库系统及画脉冲波形图课程设计报告_第3页
教务管理数据库系统及画脉冲波形图课程设计报告_第4页
教务管理数据库系统及画脉冲波形图课程设计报告_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

画脉冲波图形要求:用户以十进制数形式从键盘输入脉冲高度、脉冲宽度和颜色参数(格式同上)后,以屏幕中间行为脉冲中间行,从左到右、满屏画出相应的脉冲波图形。参数以十进制数形式输入,格式如下:Pleaseenterheigth:**Pleaseenterwidth:**Pleaseentercolor:**程序总体设计方案、思路设计方案:程序由输入、输出、图形显示构成。代码段、数据段、堆栈段都放在同一个段内,以便调用图形显示。在显示屏幕中间显示一根线,以便确认中间线,调用INT10H的写像素功能以循环画脉冲波形图。思路.:首先写好需要调用的函数,接着给出提示输入参数,高度,宽度以及颜色,然后将输入的十进制数据转化为二进制数据。设置一个640X320的16色文本显示方式,将键盘读取的数据带入图形显示文本,显示脉冲波形图。开始给出输入提示输入参数,高度,宽度和颜色将输入的十进制数转换成二进制开始给出输入提示输入参数,高度,宽度和颜色将输入的十进制数转换成二进制设置图形显示方式画脉冲波形图结束图3.1总体流程图

源程序清单CodeSegmentAssumeCS:Code,DS:CodeCREQU000DHLFEQU000AHKBBackEQU0008H;-------------------------------------;功能:显示指定地址(Str_Addr)的字符串;入口:;Str_Addr=字符串地址(要求在数据段);用法:OutputStr_Addr;用法举例:OutputPromptStrOutputMACROStr_Addrleadx,Str_Addrmovah,9int21hEndM;-------------------------------------;功能:输出回车换行Enter_CTLFprocNearpushaxpushdxmovah,02hmovdl,0dhint21hmovdl,0ahint21hpopdxpopaxretEnter_CTLFendp;-------------------------------------;功能:取光标位置;入口:无;出口:DH=行号,DL=列号GetCursorProcNearPUSHAXPUSHBXPUSHCXXORBX,BXMOVAH,3INT10HMOVCursor_Row,DHMOVCursor_Col,DLPOPCXPOPBXPOPAXRETCursor_RowDB?Cursor_ColDB?GetCursorEndP;-------------------------------------;功能:置光标位置;入口:Cursor_Row=行坐标;Cursor_Col:列坐标)SetCursorProcNearPUSHCXPUSHBXPUSHAXMOVDH,Cursor_RowMOVDL,Cursor_ColXORBX,BXMOVAH,2INT10HPOPAXPOPBXPOPCXRETSetCursorEndP;-------------------------------------;功能:键盘输入一个N位的十进制数字,将其转换成二进制数并保存在指定的内存单元。;入口:N=数字位数;di=保存输入的数字首地址;出口:转换后的二进制数保存在di所指的单元Input_DigitProcNearpushdxpushcxpushbxpushdileadi,@@Save_Tmppushdicldmovcx,Npushcx@@Input:callGetCursor;取光标位置movah,1;从键盘接受一个字符int21hcmpal,CR;若键入的是回车,已经键入的数字不足N位jz@@ASC_Dec;转去处理已经键入的数字cmpal,KBBackjz@@KB_Back;若是回空键,重新输入cmpal,'0'jb@@KBBack;若低于数字'0',重新输入cmpal,'9'ja@@KBBack;若低于数字'9',重新输入jmp@@Save_Dig@@KB_Back:decCursor_Colinccxdecdi@@KBBack:callSetCursor;置光标位置jmp@@Input@@Save_Dig:andal,0fh;转换成二进制数stosb;保存loop@@Input;接受下一个数字@@ASC_Dec:movax,cxpopcxpopsisubcx,ax;实际输入的数字位数xorbp,bpxordx,dxxorax,axjcxz@@Save_Ret;若直接回车,没有输入任何数字,按输入'0'处理deccx;实际输入的数字位数减1,准备把输入的这一串数字转换成二进制数jcxz@@One_Digit;若输入的数字只有一位,转去直接保存这个二进制数movbx,10@@Mul_Ten:lodsbcbwaddax,bpmulbxmovbp,axloop@@Mul_Ten@@One_Digit:lodsbcbwaddax,bp@@Save_Ret:popdistoswpopbxpopcxpopdxret@@Save_Tmpdb16dup(?)Input_DigitEndP;-------------------------------------Prompt_Str1db'Pleaseinputpulsehight:$';提示输入脉冲高度Prompt_Str2db'Pleaseinputpulsewidth:$';提示输入脉冲宽度Prompt_Str3db'Pleaseinputlinecolour:$';提示输入波线颜色Nequ3;输入十进制数值位数Hight_Pulsedw?;脉冲高度Width_Pulsedw?;脉冲宽度Colou_Pulsedw?;波线颜色Start:pushcspopdspushcspopes;使数据段、附加段与代码段同段OutputPrompt_Str1;提示输入脉冲高度leadi,Hight_Pulse;脉冲高度callInput_Digit;键盘输入一个3位的十进制数字,将其转换成二进制数并保存在指定的内存单元callEnter_CTLF;输出一个回车、换行OutputPrompt_Str2;提示输入脉冲宽度leadi,Width_Pulse;脉冲宽度callInput_DigitcallEnter_CTLF;输出一个回车、换行OutputPrompt_Str3;提示输入波线颜色leadi,Colou_Pulse;波线颜色callInput_Digitmovax,12h;设置640x480,16色图形显示方式int10h;以屏幕中间行为脉冲中间行,画一条横线movbp,640;横向点数xorbh,bhxorcx,cx;横向起始点movdx,480;图形显示方式,一列480点shrdx,1;纵向起始点movah,0chmoval,byteptrColou_Pulse;取像素颜色L0:int10h;写一个指定颜色的像素inccx;横向向右增值decbptestbp,bpjnzL0;从左到右、满屏画出相应的脉冲波图形。movbp,Hight_Pulse;取脉冲高度xorcx,cx;横向起始点movdx,480;图形显示方式,一列480点shrdx,1;纵向起始点L1:int10h;写一个指定颜色的像素decdx;纵向向上减值decbptestbp,bpjnzL1Pulse_Wave:movbp,Width_Pulse;取脉冲宽度,一个脉冲周期L2:int10h;写一个指定颜色的像素inccx;横向向右增值cmpcx,639jaPause;若到达屏幕最右边,跳出循环,等待用户按键,结束程序decbptestbp,bpjnzL2movbp,Hight_Pulse;取脉冲高度shlbp,1L3:int10h;写一个指定颜色的像素incdx;纵向向下增值decbptestbp,bpjnzL3movbp,Width_Pulse;取脉冲间断宽度L4:int10h;写一个指定颜色的像素inccx;横向向右增值cmpcx,639jaPause;若到达屏幕最右边,跳出循环,等待用户按键,结束程序decbptestbp,bpjnzL4movbp,Hight_Pulse;取脉冲高度shlbp,1L5:int10h;写一个指定颜色的像素decdx;纵向向上减值decbptestbp,bpjnzL5jmpPulse_Wave;一个脉冲周期结束,进行下一个脉冲周期Pause:movah,1;暂停,按任意键结束程序int21hmovah,3;设置80x25,16色文本显示方式int10hExit_Proc:movah,4ch;结束程序int21hCodeENDSENDStart;编译到此结束程序调试结果及分析设置高度为100,宽度为100,以蓝色显示的脉冲图案。图5.1参数设置以640x480,16色的显示当输入的参数的脉冲波形图。当输入的参数过大,屏幕无法准确的显示,这时只要把参数适当的调下,就可以看到完整的图案。图5.2脉冲波形图

设计总结通过此次的课程设计,对80x86汇编语言程序设计有了更深入的了解。将课堂上所学的知识运用到实践当中,了解了实践的重要性,加强了自己的动手能力,也知道自己对学到的相关知识没有很好的掌握。在做课设中遇到了很多问题,通过询问老师,网上查阅资料以及同学的帮助下,问题得以解决。这次课程设计使我学到了很多东西,受益匪浅。总的来说,此次的课程设计算是顺利完成,汇编语言是面向机器的程序设计语言,当今计算机应用在生活中可以说是无处不在,因此掌握一些编程语言对我们来说是基本的要求,相对于高级语言难学,难用,适用范围小,虽然简单,但是过于灵活,学习过高级语言的人去学习汇编比一开始学汇编的人难得多,但是学过汇编的人学习高级语言却很容易

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论