微机原理课程设计_字符串动画显示
- 格式:doc
- 大小:56.00 KB
- 文档页数:8
disp macro x,y, lengths,color,flag,varmov ah,13h;fun numbermov al,1;the monitor show modelmov bh,0;page nummov bl,color;colormov cx,lengths;str lengthsmov dh,x;str linemov dl,y;str colife flagmov bp,offset varelsemov bp,varendif;set the bp valueint 10hendm;---------------------------------------data segmentline equ 2color equ 5fh;color_board equ 3Dhline1 db 177,56 dup(177),177line2 db 177,56 dup(' '),177line3 db 177,56 dup(177),177ll equ $-line3xx equ (80-ll)/2line4 db "serial ports com1 and com2 automatic test program "l equ $-line4i equ (80-l)/2;每次右移位显示的起始列号为Ij equ i+l-1;第一次左移位显示的起始列号为Jlorg db j+1lorg1 db l/2+20-3lorg2 db l/2+i+3count dw 0count1 dw 0data ends;-----------------------------CODE SEGMENTASSUME CS:CODE,DS:CODE,es:datastart:MOV AX,CODEMOV DS,AXmov ax,0b800hMOV ES,AXcldAGAIN: MOV AX,3INT 10Hlea dx,MENU ;主菜单mov ah,9int 21hinput:mov ah,0int 16hcp1:cmp al,'1'jnz cp2call sub01 ;字符串左右移动jmp AGAIN ;返回到主菜单cp2:cmp al,'2'jnz cp3call sub02 ;字符串左右移动jmp AGAIN ;返回到主菜单cp3:cmp al,'3'jnz cp4;call sub03 ;字符串左右移动jmp AGAIN ;返回到主菜单cp4:cmp al,'4'jnz cp5;call sub04 ;字符串左右移动jmp AGAIN ;返回到主菜单cp5:cmp al,'5'jnz cp6;call sub05 ;字符串左右移动jmp AGAIN ;返回到主菜单cp6:cmp al,'6' ;返回DOS jnz inputlea dx,MESGmov ah,9int 21hmov ah,1int 21hMOV AH,4CHINT 21Hsub01:;---------------------------------START1:mov ax,datamov ds,axmov es,axmov ax,3int 10h;clear the window;------------------------------disp line+0,xx,ll,color,0,line1disp line+1,xx,ll,color,0,line2disp line+2,xx,ll,color,0,line3;-----------------------------; init the board;左移位loopstr:inc count;每一次左移位或右移位需要打印的字符数mov cx,countdec lorgmov dl,lorg;每次循环减一,使得打印的起始列值左移一位mov bp,offset line4disp line+1,dl,cx,color,1,bp;显示右边的数进行左移位call delay;右移位mov bp,offset line4+l;每次都先使BP指向最后一个字符‘M’的后面一位mov cx,countsub bp,cx;使得BP指向要打印的第一个字符disp line+1,i,cx,color,1,bp;显示右边的数进行右移位call delay;调用延迟子程序cmp count,l;判断是否全部打印结束jne loopstrs: dec countjnz sa:inc lorgcmp lorg,j+1jnz ajmp startmov ah,01h;调用Dos功能的键盘输入mov ah,4ch;结束int 21hRETsub02:mov ax,datamov ds,axmov es,axmov ax,3int 10h;clear the window;------------------------------disp line+0,xx,ll,color,0,line1disp line+1,xx,ll,color,0,line2disp line+2,xx,ll,color,0,line3;-----------------------------; init the board;左移位loopstr1:inc count1;每一次左移位或右移位需要打印的字符数mov cx,count1dec lorg1mov dl,lorg1;每次循环减一,使得打印的起始列值左移一位mov bp,offset line4disp line+1,dl,cx,color,1,bp;显示右边的数进行左移位call delay;右移位mov bp,offset line4+l;每次都先使BP指向最后一个字符‘M’的后面一位mov cx,count1;inc lorg1;mov dh,lorg1sub bp,cx;使得BP指向要打印的第一个字符disp line+1,lorg2,cx,color,1,bp;显示右边的数进行右移位call delay;调用延迟子程序cmp count1,l/2;判断是否全部打印结束jne loopstr1s1: dec count1jnz s1a1:inc lorg1cmp lorg1,l/2+20-3a2:inc lorg2cmp lorg2,l/2+i+3jnz a2jmp startmov ah,01h;调用Dos功能的键盘输入int 21hmov ah,4ch;结束int 21hret;------------------------------;延迟子程序DELAY procpush cxpush dxmov ah,86hd1:mov cx,0ffffh;千分秒,延迟时间loop $dec dxjnz d1mov dx,800int 15hpop dxpop cxRETMENU DB 5 DUP(0AH)DB 31 DUP(' '),'MAIN MENU',0DH,0AHDB 25 DUP(' '),201,21 DUP(205),187,0DH,0AHDB 25 DUP(' '),186,' 1.Origine ',186,0DH,0AH DB 25 DUP(' '),186,' 2.middle1 ',186,0DH,0AH DB 25 DUP(' '),186,' 3.middle2 ',186,0DH,0AH DB 25 DUP(' '),186,' 4.asymchronical ',186,0DH,0AH DB 25 DUP(' '),186,' 5.two lines ',186,0DH,0AH DB 25 DUP(' '),200,21 DUP(205),188,0DH,0AHDB 28 DUP(' '),'Choice(1,2,3,4,5):$'MESG DB 0dh,0ah,0dh,0ah,9,'Press any key to exit ...$' CODE ENDSEND start。
(完整word版)字符串动画显示汇编语言程序设计目录1总体方案论证 (1)1.1题目功能分析 (1)1。
2算法说明 (1)2流程图设计及说明 (2)2。
1主程序流程图设计 (2)2.2分布具体功能实现流程图设计 (3)2。
2.1字符串右移 (3)2。
2。
2字符串下移 (4)2。
2。
3字符串闪烁 (5)3软件设计关键问题或程序段落说明 (5)3。
1提示输入字符串显示功能实现 (5)3.2向右、向下移动功能实现 (7)3.3字符串大小写变化实现 (9)3.4颜色变化功能实现 (10)3。
5退出功能实现 (10)4调试说明、结果记录及分析 (11)4。
1调试说明 (11)4.2结果记录与分析 (11)4.2。
1 提示输入字符串 (11)4。
2。
2输入后显示字符串 (11)4.2。
3在特定位置从无到有显示 (12)4.2.4在特定位置向右移动 (13)4.2。
5在特定位置向下移动 (13)4。
2.6小写变成大写加闪烁 (14)5课程设计收获及心得 (15)6参考文献 (16)(完整word版)字符串动画显示汇编语言程序设计字符串动画显示汇编语言程序设计1总体方案论证1.1题目功能分析(1)屏幕提示输入字符串;(2)输入完成后,字符动画显示,显示方式可为:从无到有,从左到右,从上到下,大小写变化、颜色变化等;(3)可连续显示或定时显示,直至单击“Q”或“q”键退出程序。
1。
2算法说明(1)屏幕提示输入字符串主要运用中断INT 21H的0A H功能;(2)在确定光标位置后,通过循环改变其行列数值来达到左右上下移动功能;大小写变化则通过将输入字符与‘a’和‘z’比较,若为小写字母,则减去20H,否则不变;颜色变化则通过INT 10H的09H功能循环调用实现;(3)退出功能通过将输入‘Q’和‘q’与其ASC 比较,跳转到退出程序;而退出程序主要通过INT 21H的4C H功能实现。
2流程图设计及说明2.1主程序流程图设计图2-1 主程序流程图图2-1 字符串动画总流程图2。
微机原理与接口技术课程设计报告课题名称:点阵字符显示学院:专业:班级:组员:指导教师:日期:2015年12月19日目录一、概述 (1)二、设计目的 (1)三、设计原理 (1)四、电路设计 (2)1.硬件设计 (2)2.软件设计 (3)五、运行结果 (4)六、总结和体会 (5)七、程序代码 (6)一、概述点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。
当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。
车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。
二、设计目的1、了解点阵LED显示器的基本原理。
2、掌握PC机控制点阵LED显示程序的设计方法。
3、用开关控制点阵字符的显示。
三、设计原理本次实验所使用的实验箱是红色和绿色双色点阵,上面有一个共阳极8×8点阵的红绿两色LED显示器,其点阵结构如图所示。
该点阵对外引出24条线,其中8条行线,8条红色列线,8条绿色列线。
若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。
例如欲显示汉字“年”,采用逐列循环发光。
首先由“年”的点阵轮廓,确定点阵代码(如图所示)根据“年”的点阵代码,确定逐列循环发光的顺序如下:①行代码输出 44H;红色列代码输 01H;第一列2个红色LED发光。
②行代码输出 54H;红色列代码输 02H;第二列3个红色LED发光。
③行代码输出 54H;红色列代码输 04H;第三列3个红色LED发光。
④行代码输出 7FH;红色列代码输 08H;第四列7个红色LED发光。
⑤行代码输出 54H;红色列代码输 10H;第五列3个红色LED发光。
⑥行代码输出 DCH;红色列代码输 20H;第六列5个红色LED发光。
⑦行代码输出 44H;红色列代码输 40H;第七列2个红色LED发光。
微机原理课设报告学生姓名:常卫洪学号:130704101 专业班级:电子科学与技术131班课程名称:微型计算机原理及应用技术学年学期:2015-2016学年第1 学期指导教师:赵艳2 015年12 月课程设计成绩评定表目录一、设计目的--------------------------------------------4二、设计任务与要求-------------------------------------4三、小组分工--------------------------------------------4四、实现方法--------------------------------------------4五、功能效果展示---------------------------------------11六、改进以及及建意-------------------------------------13七、心得体会---------------------------------------------14八、参考资料--------------------------------------------14九、附源程序--------------------------------------------14一、设计目的:1、掌握汇编语言,会利用汇编语言编写一定功能的程序;2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;3、熟悉常用的DOS功能;4、小组合作完成设计题目。
二、设计任务与要求设计内容要求:1、菜单内容包括:①输入字符串;②字符串动画显示;③退出。
2、输入字符串选择该项后,可以输入一个字符串。
该字符串即为动画显示时所显示的字符串。
3、字符串动画显示所示字符串在一矩形框内一半从左另一半从右向中间移动,当两半相遇时又分别向两边移动,直至遇到两侧的边框双重新向中间移动,重复上述过程直至按任意键,则停止字符串动画显示返回到主菜单。
某某学院微机原理课程设计2013级电气工程及其自动化专业班级题目字符图形显示姓名学号指导教师职称二О一三年12 月13 日摘要 (3)一、字符图形显示的基本原理 (4)二、设计方案 (4)三、硬件设计 (4)四、软件设计 (5)4.1 主模块及子模块说明 (5)五、设计体会 (13)参考文献 (14)摘要本课程设计是通过使用汇编语言来完成的,具体实现的方法可以通过在MASM使用环境下运行,也可以通过在DOS环境下完成。
我做的课程设计是通过编写汇编语言程序,实现字符图形的显示。
在编写初期,我对字符“SPORT”进行了设计,确定了每个字符所在的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。
接着开始编写程序,编写完程序后,对程序进行了注释,最后调试出所要求的字符。
本程序可以在DOS环境和MASM环境下运行,要求我们熟悉BIOS中断10的各种功能。
整个课程设计的过程,是一个不断学习、不断实践的过程,从而提高了我们的编程能力和程序开发思想,也提高了我们自主学习的能力。
关键词:字符显示,10号中断,图形,BIOS一、字符图形显示的基本原理字符图形显示可以在DOS环境下完成,编写完程序后分析并理解每条程序的意思,并解释主要程序的意思,最后调试出所要求的字符。
在程序编写前,我首先对自己显示的图形进行了设计,确定了每个数字相对于前一个数字的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。
本次实验实验的编写环境是MASM,编译、链接也是在该环境下实现的。
程序的运行我使用的是DOS环境。
通过参考网上的一些原程序,要编写好该程序,首先应该对BIOS的中断熟悉,因此程序编写前,我先认真学习了该BIOS中断的有关功能。
二、设计方案在课程设计之前,首先要明确设计的目的。
本次课程设计的题目是字符图形显示,要求我们能够编写一个汇编程序,正确的显示所要求的字符。
河北科技大学课程设计报告学生姓名韩永亮学号:10L0751250 专业班级:电信L104课程名称:微型计算机原理及应用技术学年学期:2 0 1 2—2 0 1 3学年第1学期指导教师:刘伟2 0 13年1月课程设计成绩评定表学生姓名韩永亮学号10L0751250 成绩专业班级电信L104 起止时间2013-1-7 至2013-1-11设计题目字符串动画显示指导教师评语指导教师:年月日一、课程设计的目的和任务课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。
所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。
通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。
培养学生事实求是和严肃认真的工作态度。
通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
河北科技大学课程设计报告学生姓名:学号:专业班级:电信L122班课程名称:微型计算机原理及应用技术学年学期: 2 0 14 —2 0 15 学年第1 学期同组人员:指导教师:张永强2 0 14年12 月课程设计成绩评定表目录一、设计目的-----------------------------------------4二、设计任务与要求-------------------------------------4三、小组分工--------------------------------------------4四、实现方法--------------------------------------------5五、功能效果展示---------------------------------------6六、心得体会--------------------------------------------9七、参考资料--------------------------------------------10八、附源程序--------------------------------------------11一、设计目的:1、掌握汇编语言,会利用汇编语言编写一定功能的程序;2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;3、熟悉常用的DOS功能;4、小组合作完成设计题目。
二、设计任务与要求设计内容要求:1、菜单内容包括:①输入字符串;②字符串动画显示;③退出。
2、输入字符串选择该项后,可以输入一个字符串。
该字符串即为动画显示时所显示的字符串。
3、字符串动画显示所显示字符串在一矩形框内从无到有,一半从左另一半从右向中间移动,当两半相遇时停止移动,当按下R键后重复从两边到中间移动的动作,直到按下Q键,停止字符串动画显示返回到主菜单。
4、在主菜单中选择退出项,则结束程序返回DOS。
三、小组分工四、实现方法4.1 MASM编译开发环境实现MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。
微机原理与接口技术一、课题名称基于80X86汇编语言的动画图形设计二、设计任务书课程设计任务书1 课题名称:基于80X86汇编语言的动画图形设计2 课程设计目的通过本课程设计,初步掌握《微机原理及接口技术》这门课程课堂所学的理论知识具体运用到实践中去的基本方法。
掌握利用BIOS实现微型计算机显示器和键盘接口程序设计的方法;掌握利用CPU汇编语言设计较大程序的一般方法;进一步加深对学习过程中的基本知识、基本理论、基本方法的理解;从而为今后从事微型计算机软硬件的设计、维护、调试和应用等打下良好的基础。
3内容简述利用汇编语言设计一动画图形,具体内容由学生自己确定,原则上应为以下形式之一:⑴图形按照一定规律自行运动且由键盘控制图形的起、停;⑵键盘作为功能键,控制图形的过程运动和功能变化;⑶交互式动画图形,既通过按下键盘上不同的按键后,能使图形按照不同的方向运动和静止。
5设计方案提示⑴利用DOS系统功能调用和BIOS的INT16H实现按键的识别。
⑵利用BIOS的INT10H完成图形绘制。
⑶CRT工作方式04H为:320×200(彩色);CRT工作方式10H为:640×350(16色);CRT工作方式12H为:640×480(16色)(推荐);三、内容提要摘要:本实验主要讲述了基于80X86汇编语言动画的设计。
主要采用了两种BIOS调用:INT 10H(显示中断)和INT 16H(键盘中断)。
在与CPU和其各寄存器的配合工作下,完成动画图形。
关键字:BIOS中断子程序宏调用字符图形Abstract: The present work describes the animation design based on 80X86 assembly language. It mainly uses two BIOS calls: INT 10H (show interrupts) and the INT 16H (keyboard interrupt). With the cooperating of CPU and its various registers, the animation graphics work can be completed.Keywords: BIOS interrupts; subroutine; macro; call; Character Graphics四、目录正文1、概述所作题目的意义、系统的主要功能、及使用方法;2、硬件电路设计及描述;3、软件设计流程及描述;4、源程序代码(要有注释)。
河南农业大学课程设计报告题目:移动动画显示设计课程:微型计算机原理专业:电子信息工程班级:09电信(2)班学生姓名:学号:指导教师:朱娟花完成日期:2011.12.26机电工程学院目录前言 (1)1.1实习目的 (1)1.2实习要求 (1)第一章绪言 (1)第二章软件系统介绍 (2)2.1关于emulator的软件介绍 (2)第三章程序设计分析 (5)3.1 程序设计思路 (7)3.2 程序流程图设计 (7)3.3软件各模块内容 (9)3.4程序清单及详细注释 (9)3.5实验结果 (15)第四章系统实现 (16)4.1 程序源代码 (17)总结 (18)参考文献 (18)前言1实习目的汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机硬件特性并能直接控制硬件的唯一语言。
汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。
因此,要求我们能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。
对我们掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
培养我们综合运用所学知识独立完成汇编程序课题的能力。
使我们能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。
提高我们对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
培养我们从资料文献、科学实验中获得知识的能力,提高我们从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
培养我们勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
1实习要求动画程序设计要求完成一个在显示器上显示一个图形动画设计,即当程序运行时可看到移动的图形或图像。
此程序涉及到宏和I/O中断的调用,要求我们掌握对宏的定义和使用,使用汇编语言对I/O中断的使用。
河北科技大学课程设计报告学生姓名韩永亮学号:10L0751250 专业班级:电信L104课程名称:微型计算机原理及应用技术学年学期:2 0 1 2—2 0 1 3学年第1学期指导教师:刘伟2 0 13年1月课程设计成绩评定表学生姓名韩永亮学号10L0751250 成绩专业班级电信L104 起止时间2013-1-7 至2013-1-11设计题目字符串动画显示指导教师评语指导教师:年月日一、课程设计的目的和任务课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。
所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。
通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。
培养学生事实求是和严肃认真的工作态度。
通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
二.设计题目题目三字符串动画显示设计内容要求:1、菜单内容包括:①输入字符串;②字符串动画显示;③退出。
2、输入字符串选择该项后,可以输入一个字符串。
该字符串即为动画显示时所显示的字符串。
3、字符串动画显示所显示字符串在一矩形框内左右来回移动,左移到左侧边框处自动右移,右移到右侧边框处自动左移,直到有任意键按下,停止字符串动画显示返回主菜单。
4、在主菜单中选择退出项,则结束程序返回DOS。
三、课程设计的主要步骤课程设计可以分为硬件设计和软件设计两个部分,其设计过程可以归纳为以下所述的四个步骤:1.总体设计本阶段的任务是通过调查研究,查阅资料来初步确定系统结构的总体方案,其中主要涉及到硬件和软件的功能划分。
应用系统中硬件和软件具有一定的互换性,即某些功能既可以用硬件实现也可以用软件实现。
一般说来,用硬件实现的优点是可以提高系统的工作速度,但会增加电路的复杂性和硬件成本;而用软件代替某些硬件的功能可以使电路简化,便于修改设计,降低硬件成本,但软件工作量增大。
总体设计时,必须在硬件和软件之间权衡,分工明确,然后分头开始设计。
2.硬件设计过程利用实验箱的硬件资源,结合课程设计题目,设计硬件原理图,搭建硬件电路。
3.软件设计过程(1)采用模块化程序结构设计软件,可将整个软件分成若干功能模块。
(2)画出程序流程图。
(3)根据流程图,编写源程序。
(4)上机调试程序。
4.软、硬件联调。
三.设计原理及方案主程序流程图开始段地址初始化进入DOS窗口输出提示信息输入字符串字符串动态显示数码管数据输出R按任意Y结束四.实现方法程序:CODE SEGMENT ;代码段开始ASSUME CS:CODE,DS:CODESTART: MOV AX,CODEMOV DS,AX ;装填代码段MOV AX,0B800HMOV ES,AXCLD ;清除方向标志AGAIN: MOV AX,3INT 10H ;显示LEA DX,MENU ;目标地址传送,将主菜单有效地址送入DIMOV AH,9INT 21H ;九号系统功能调用,输出字符串INPUT: MOV AH,0INT 16HCMP AL,'1'JNZ CP2CALL SUB01 ;输入一个字符串JMP INPUTCP2: CMP AL,'2' ;比较指令JNZ CP3 ;不为零时跳转CALL SUB02 ; 调用子程序,字符串左右移动JMP AGAIN ;转移指令,返回到主菜单CP3: CMP AL,'3' ;返回DOSJNZ INPUTLEA DX,MESGMOV AH,9INT 21HMOV AH,1INT 21H ;一号系统功能调用,键盘输入单字符MOV AH,4CHINT 21H ;4CH号调用,返回操作系统DELAY PROC ;定义子程序的伪指令PUSH CX ;压栈指令PUSH DXMOV DX,800D1: MOV CX,0FFFFHLOOP $DEC DX ;减一指令JNZ D1POP DX ;出栈指令POP CXRET ;返回指令DELAY ENDP ;表示PROC所定义的子程序过程结束SUB01: MOV AX,0E0DHINT 10HMOV AL,0AHINT 10HLEA DX,STRMOV AH,0AHINT 21H ;十号系统功能调用,输入字符串MOV AX,0E0AHINT 10HRETSUB02: CMP BUF,0DHJZ QUITCALL LINE ;画矩形框LEA SI,STRINC SI ;加一指令MOV DX,SIMOV AL,' 'XCHG AL ,[SI] ;数据交换指令CBW ;字节扩展指令MOV BX,AXINC BXMOV BYTE PTR [BX+SI],' 'INC BXPUSH BXSHL BX,1 ;逻辑左移指令SUB RIGHT,BX ;不带借位的减法指令POP BXMOV BP,LEFTSHOW:MOV SI,DXMOV CX,BXMOV DI,BPNEXT: MOVSB ;字符串传送指令MOV AL,2STOSB ;存字符串指令LOOP NEXTMOV AH,1INT 16HJNZ QUIT ;按任意键,返回主菜单CALL DELAYADD BP,NUMCMP BP,RIGHTJB T1 ;低于也不等于转移MOV NUM,-2JMP HERET1: CMP BP,LEFTJA HEREMOV NUM,2HERE: JMP SHOW ;自跳转SSS: MOV BUF,0DHQUIT: XOR DI,DIMOV CX,80*25MOV AX,720HREP STOSW ;清全屏RETLINE: ;矩形框MOV DI,(18*80+10)*2MOV AL,201 ;左上角MOV AH,4STOSW ;存入串指令的字操作MOV CX,60-2MOV AL,205 ;横框REP STOSWMOV AL,187 ;右上角STOSWADD DI,20*2MOV AL,186 ;竖框STOSWMOV LEFT,DIMOV CX,60-2MOV AL,20H ;空格REP STOSWMOV RIGHT,DIMOV AL,186 ;竖框STOSWADD DI,20*2MOV AL,200 ;左下角STOSWMOV CX,60-2MOV AL,205 ;横框REP STOSWMOV AL,188 ;右下角STOSWRETMENU DB 5 DUP(0AH)DB 31 DUP(' '),'MAIN MENU',0DH,0AHDB 25 DUP(' '),201,21 DUP(205),187,0DH,0AHDB 25 DUP(' '),186,' 1.Input a String ...',186,0DH,0AHDB 25 DUP(' '),186,' 2.Display Model ... ',186,0DH,0AH DB 25 DUP(' '),186,' 3.Return to DOS ... ',186,0DH,0AH DB 25 DUP(' '),200,21 DUP(205),188,0DH,0AHDB 28 DUP(' '),'Choice(1,2,3):$'MESG DB 0DH,0AH,0DH,0AH,9,'Press any key to exit ...$' NUM DW 2LEFT DW 0RIGHT DW 0STR DB 21DB 0BUF DB 0DH,20 DUP(0)CODE ENDSEND START。