微机原理课设-显示姓名字样的程序_第1页
微机原理课设-显示姓名字样的程序_第2页
微机原理课设-显示姓名字样的程序_第3页
微机原理课设-显示姓名字样的程序_第4页
微机原理课设-显示姓名字样的程序_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、学 号: 0121211350313微机原理及接口技术课程设计题 目显示姓名字样的程序学 院自动化学院专 业电气工程及其自动化班 级电气1203姓 名杨敏指导教师李道远2014年12月27日课程设计任务书学生姓名: 杨敏 专业班级: 电气1203 指导教师: 李道远 工作单位: 自动化学院 题 目: 显示姓名字样的程序 初始条件:编写显示“自己姓名”字样的程序。并能由小到大,由大到小变化。按Q退出程序。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1) 设计任务及要求分析(2) 方案比较及认证说明(3) 系统原理阐述(4) 硬件设计课题需要说明:硬件原理,

2、电路图,采用器件的功能说明(5) 软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6) 调试记录及结果分析(7) 总结(8) 参考资料(9) 附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图目录1.课程任务及其要求分析32.系统原理阐述33.汇编语言程序设计43.1主程序设计及其原理分析43.1.1设计思路43.1.2流程图43.1.3主程序53.2各子程序原理分析73.2.1三种字体输出子程序及其功能说明73.2.2延迟子程序及其功能说明83.2.3清屏子程序及其功能说明93.2.4换行子程序及其功能说明94.程序测试记录及其结果分析105.小结116.参考文献121.课程

3、任务及其要求分析对任务书进行分析可知,本课程设计的任务为用汇编语言设计显示自己姓名的程序并且要求姓 Q键退出程序。设计的基本要求为认真编写程序,并在规定的时间内写好课程设计报告书,报告书的基本要求为(1)设计任务及要求分析(2)系统原理阐述(3)软件思想,流程图,源程序及程序注释(4)调试记录及结果分析(5)总结(6)参考资料,(7)最后附上本科生课程设计评定表并且在规定的时间内完成课程设计报告书,提交报告书并进行答疑2.系统原理阐述分析设计任务及要求可以得知编写此汇编程序的基本原理,编写一个主程序和若干个子程序(延时子程序、换行子程序、清屏子程序、显示姓名子程序)来完成设计任务所要

4、求的功能,用这种方法比较简单,主程序完成的功能为:首先要输出开始语句,提示用户输入字体规格,取得字体规格后调用输出姓名子程序,为了使我们能够看到自己的名字必须调用延时子程序以增加显示的时间,调用结束马上输出结束语句,提示用户是按Q退出还是按N继续输出姓名,当得到N以后必须马上清屏,然后再次调用提示信息子程序和显示姓名子程序,换行子程序的原理为通过int 21h的02h功能来完成,清屏子程序的原理为通过int 10h的06h的屏幕上卷功能来完成清屏通过AL可以设计一次清屏的行数。显示姓名子程序的原理为首先通过汉字取模软件完成姓名汉字的编码,经过的方格用1表示,没有经过的方格用

5、0表示,然后应用int 10h的02号功能完成字符的显示,1输出为*,0输出空格,将主程序和各个子程序组合在一起即可完成汇编程序的编制。3.汇编语言程序设计3.1主程序设计及其原理分析3.1.1设计思路根据设计任务及要求可知,汇编语言的基本思想为编写一个主程序和若干个子程序,各子程序分别为:延时子程序、换行子程序、清屏子程序、显示姓名子程序,在程序运行时用主程序分别调用各个子程序,即可完成汇编语言程序的编制。因为各个子程序是相互独立的,这样可以先依靠主程序来完成一部分功能,然后通过增加子程序逐渐增加系统的功能,最终达到所要求的功能。3.1.2流程图3.1.3主程序data segme

6、nt ;数据段 yang16 DB 08H,00H,88H,1FH,08H,08H,08H,04H,3FH,02H,08H,01H,8CH,7FH,1CH,49H,2AH,49H,2AH,49H,89H,48H,88H,44H,48H,44H,28H,42H,08H,29H,88H,10H ;杨16x16 min16 DB 02H,04H,02H,04H,0FEH,04H,01H,7CH,7EH,22H,42H,22H,4AH,22H,52H,25H,0FFH,15H,42H,14H,49H,08H,51H,08H,0FFH,14H,40H,12H,28H,21H,90H40H;敏16x16

7、yang24 DB 00H,00H,00H,04H,00H,00H,07H,00H,20H,06H,3FH,0F0H,06H,00H,60H,06H,00H,0C0H,06H,41H,00H,3FH,82H,00H,06H,04H,00H,06H,08H,00H,07H,3FH,0FCH,0EH,92H,6CH,0EH,0C6H,4CH,1EH,44H,0CCH,16H,08H,8CH,26H,11H,88H,26H,21H,08H,46H,42H,08H,06H,04H,08H,06H,08H,08H,06H,10H,18H,06H,60H,0F0H,06H,00H,20H,00H,00H,

8、00H ;杨24x24 min24 DB 00H,00H,00H,00H,00H,00H,06H,00H,0C0H,0CH,01H,80H,08H,0DH,80H,1FH,0F1H,00H,10H,01H,00H,28H,13H,0FCH,2FH,0FBH,18H,49H,15H,10H,09H,95H,10H,08H,99H,10H,08H,15H,10H,3FH,0F8H,90H,1AH,10H,0B0H,11H,10H,0A0H,11H,90H,60H,11H,30H,60H,3FH,0FCH,60H,10H,20H,0B0H,00H,21H,18H,01H,0E2H,0EH,00H,0

9、CCH,04H,00H,00H,00H ;敏24x24 yang32 DB 00H,00H,00H,00H,00H,00H,00H,00H,01H,00H,00H,00H,01H,0C0H,00H,80H,01H,87H,0FFH,0C0H,01H,82H,01H,0C0H,01H,80H,03H,00H,01H,80H,06H,00H,01H,88H,0CH,00H,3FH,0FCH,18H,00H,01H,80H,30H,00H,01H,80H,60H,00H,01H,80H,0C0H,00H,03H,0C1H,80H,18H,03H,0E3H,0FFH,0FCH,03H,0B8H,31H

10、,98H,07H,98H,21H,98H,05H,98H,63H,18H,0DH,88H,0C3H,18H,09H,80H,86H,18H,19H,81H,8CH,18H,11H,82H,0CH,18H,21H,84H,18H,10H,41H,88H,30H,30H,01H,90H,60H,30H,01H,80H,0C0H,30H,01H,81H,80H,30H,01H,82H,08H,70H,01H,8CH,07H,0E0H,01H,90H,01H,0C0H,01H,80H,00H,80H,00H,00H,00H,00H ;杨32x32 min32 DB 00H,00H,00H,00H,00

11、H,00H,00H,00H,03H,00H,04H,00H,03H,80H,07H,00H,03H,00H,06H,00H,06H,00H,0CCH,00H,07H,0FFH,0ECH,00H,04H,00H,0CH,00H,0CH,00H,08H,00H,1CH,01H,18H,18H,17H,0FFH,9FH,0FCH,26H,01H,98H,20H,46H,41H,28H,20H,06H,21H,28H,20H,06H,31H,48H,60H,06H,33H,88H,60H,04H,03H,64H,60H,3FH,0FFH,0F4H,60H,0CH,03H,04H,40H,0CH,83H

12、,04H,0C0H,0CH,63H,02H,0C0H,0CH,23H,02H,0C0H,0CH,23H,03H,80H,08H,03H,41H,80H,18H,03H,0E3H,80H,1FH,0FFH,0F6H,0C0H,00H,02H,04H,60H,00H,06H,08H,70H,00H,7EH,30H,3CH,00H,1CH,40H,18H,00H,18H,80H,00H,00H,00H,00H,00H ;敏32x32 BeginWord db 'Please Choose a print size 1,2 or 3','$' ;开始语句 QuitWor

13、d db 'Do you want to exit ? Q/N','$' ;结束语句 KongHang db ' ','$ ;'输出8位空格data endscode segment ;代码段 assume cs:code,ds:datastart: MOV AX,DATA MOV DS,AXagain: lea dx,BeginWord ;程序开始语句,选择字体 mov ah,9 int 21h call CTLFmov ah,1int 21hcall CTLFcmp al,'3'jz zhi3cmp al,&#

14、39;2'jz zhi2cmp al,'1'jz zhi1jmp againzhi1: call print1 ;输出1号字体 jmp choosezhi2: call print2 ;输出2号字体 jmp choosezhi3: call print3 ;输出3号字体choose: call delay ;结束选择 lea dx,QuitWord mov ah,9 int 21h call CTLF mov ah,1 int 21h call CTLF cmp al,'Q' jz Quit cmp al,'N' jnz choose c

15、all qingping jmp againQuit: mov ax,4c00h int 21hcode ends end start3.2各子程序原理分析3.2.1三种字体输出子程序及其功能说明以2号字体输出子程序为例print2 proc near ;输出2号字体(24x24)子程序lea si,yang24 ;置偏移地址lea di,min24mov cx,24 ;列循环lie2: push cx mov cx,3 hangy2: push cx ;第一个字行循环 mov bl,byte ptrsi mov cx,8 loopy2: shl bl,1 ;移位判断输出类型 jnc c1 m

16、ov dl,2ah mov ah,2 int 21h jmp d1c1: mov dl,20h mov ah,2 int 21hd1: loop loopy2 pop cx inc si loop hangy2lea dx,KongHang ;输出两字中间8位空格mov ah,9int 21hmov cx,3hangm2: push cx ;第二个字行循环 mov bl,byte ptrdi mov cx,8loopm2: shl bl,1 ;移位判断输出类型 jnc c2 mov dl,2ah mov ah,2 int 21h jmp d2c2: mov dl,20h mov ah,2 in

17、t 21hd2: loop loopm2 pop cx inc di loop hangm2call CTLF ;换行pop cxloop lie2 retprint2 endp3.2.2延迟子程序及其功能说明delay proc near ;延迟子程序 push cx mov cx,0d000h loop $ pop cx retdelay endp3.2.3清屏子程序及其功能说明qingping proc ;清屏子程序mov ah,06hmov al,0mov bh,0fh ;黑底白字mov ch,0 ;从0行0列到40行75列清屏mov cl,0mov dh,40mov dl,75int

18、 10hmov dl,0 ;光标在左上角mov dh,0mov bh,0mov ah,2int 10hretqingping endp3.2.4换行子程序及其功能说明CTLF PROC NEAR ;换行子程序 PUSH AX PUSH DX MOV AH,02H ;输出单个字符. MOV DL,0DH ;0D是回车符的ASCII码. INT 21H ;输出. MOV AH,02H MOV DL,0AH ;0A是换行符的ASCII码. INT 21H POP DX POP AX RETCTLF ENDP4.程序测试记录及其结果分析1号字体显示2号字体显示3号字体显示5.小结通过这次课程设计使我更深刻的理解并掌握了微机原理与接口技术这门学科,遇到问题时经过查阅资料,使问题得

温馨提示

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

评论

0/150

提交评论