微机原理课设总汇编语言动态显示姓名学号Word文档下载推荐.docx
《微机原理课设总汇编语言动态显示姓名学号Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课设总汇编语言动态显示姓名学号Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
![微机原理课设总汇编语言动态显示姓名学号Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/29/79fecea0-1e29-4e01-b0ba-e404d9d539be/79fecea0-1e29-4e01-b0ba-e404d9d539be1.gif)
3)可自行设计显示姓名及学号的方案。
二、分析
1)BIOS中断调用:
BIOS常驻ROM,独立于DOS,可与任何操作系统一起工作。
它的主要功能是驱动系统所配置的外部设备,如磁盘驱动器、显示器、打印机及异步通讯接口等。
通过INT10H~INT1AH向用户提供服务程序的入口,使用户无需对硬件有深入了解,就可完成对I/O设备的控制与操作。
BIOS的中断调用与DOS功能调用类似。
2)图形设计:
掌握BIOS中断调用INT10H的13H号功能。
注意13H号功能入口参数的要求。
3)颜色显示:
在彩色显示屏幕上每个字符在存储中用两个字节表示。
一个字节保存字符的ASCII码,另一个字节保存字符的属性。
BIOS中断调用INT10H的13H号功能是显示字符串,字符的属性在BL中。
属性设置方法见教材第四章164页。
三、软件设计
1)设计详细的程序流程图;
2)根据流程图,编写源程序;
3)上机调试源程序。
程序流程图
程序执行图:
图1.菜单提示界面
图2.输入一般字符时(非Esc、非Y)的显示画面
图3.输入Y后,显示的画面
ROW=8
COLUM=00
ESCKEY=1BH
DSEGSEGMENT
MENUDB0DH,0AH,'
---------------COMTENT------------------------'
0DH,0AH
DB0DH,0AH,'
1.SHOWTHE[2008],PRESS"
Y"
.'
2.SHOWTHE[NUMBER],PRESSANYKEY!
'
3.TOEXIT,PRESSTHE[ESC].'
N=$-MENU
MESS1DB'
+OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+'
DB'
||D||111111111111111111111111111111111111||D||'
||L||11111111111111111111111111111111||L||'
||X||111111111111111111111111111111111111||X||'
||Y||11111111111111111111111111111111111111||Y||'
||Z||11111111111111111111111111111111||Z||'
||D||11111111111111111111111111111111111111||D||'
||H||11111111111111111111111111111111||H||'
||Z||11111111111111111111111111111111||Z||'
||Y||1111111111111111111111111111111111111111||Y||'
MESS_LEN1=$-OFFSETMESS1
MESS2DB'
+OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+'
|NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN|'
|NNNNNNNNNNNNNNNNNNNNNN|'
|NNNNNNNNNNNNNNNNNN|'
|NNNNNNNNNNNNNNNNNNNNNN|'
|NNNNNNNNNNNNNNNNNNNNNNNN|'
|NNNNNNNNNNNNNNNN|'
MESS_LEN2=$-OFFSETMESS2
COLORBDB4AH,3AH,14H,52H,4FH,74H,2EH,59H,6FH,6DH,20H
COLORELABELBYTE
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG,ES:
DSEG
START:
MOVDI,OFFSETCOLORB-1;
预置颜色指向
MOVAX,DSEG
MOVDS,AX
MOVES,AX
LEABP,MENU;
显示提示菜单
MOVAH,13H
MOVAL,01
MOVCX,N
MOVBL,0BH
MOVBH,0
MOVDX,0
INT10H
NEXTC:
INCDI;
改变颜色
CMPDI,OFFSETCOLORE
JNZNEXTE
MOVDI,OFFSETCOLORB
NEXTE:
MOVBL,[DI]
MOVDH,ROW
MOVDL,COLUM
MOVAH,0;
选择要显示的字符
INT16H
CMPAL,'
Y'
JZC1
CMPAL,1BH;
退出
JZOVER1
JMPC2
C1:
CALLECHO1
JMPNEXTC
OVER1:
MOVAX,4C00H
INT21H
C2:
CALLECHO2
ECHO1PROCNEAR;
子程序1,显示MESS1
MOVSI,OFFSETMESS1
MOVCX,MESS_LEN1
PUSHES
PUSHBP
PUSHDS
POPES
MOVBP,SI
MOVAL,0
CALLCLRS
POPBP
CALLDELAY
RET
ECHO1ENDP
ECHO2PROCNEAR;
子程序2,显示MESS2
MOVSI,OFFSETMESS2
MOVCX,MESS_LEN2
ECHO2ENDP
CLRSPROCNEAR;
清屏子程序
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAH,6
MOVCH,0
MOVCL,0
MOVDH,24
MOVDL,79
MOVBH,7
POPDX
POPCX
POPBX
POPAX
CLRSENDP
DELAYPROCNEAR;
延时
MOVDX,57138
WAIT1:
MOVCX,4435
WAIT2:
LOOPWAIT2
DECDX
JNZWAIT1
DELAYENDP
CSEGENDS
ENDSTART