微机原理实验用格形式显示字符
微机原理及实验指导

实验一、I/O程序设计一.实验内容:I/O程序设计(一)实验内容:1.编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。
2.从键盘输入两个1位十进制数,计算二者之和,并将结果显示在屏幕上。
3.编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上,例:5=00000101B (二)实验步骤: 1. 画出实验流程图。
2. 运行Tddebug软件,选择Edit菜单编写实验程序 3. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
4. 使用Rmrun菜单中的Run运行程序,观察运行结果。
5. 使用Rmrun菜单中的Debug调试程序。
单步执行指令,观察各寄存器及数据区的内容。
6. 更改数据区中的数据,考察程序的正确性。
二.分析设计思想。
设计思路:首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII码送屏幕显示。
其中0H~9H之间的数加30H,即可得0H~9H的ASCII码,而AH~FH的ASCII码,则需再加7H,参见表5-1。
参考程序流程如图2-1所示。
示例程序参见参考程序清单。
三.程序清单及流程DATA SEGMENTMES DB 'Show a as hex:',0AH,0DH,'$'SD DB 'a'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES ;显示提示信息MOV AH,09H INT 21HMOV SI,OFFSET SD 4MOV AL,DS:[SI]AND AL,0F0H ;取高4位MOV CL,4SHR AL,CLCMP AL,0AH ;是否是A以上的数JB C2ADD AL,07HC2: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FH ;取低4位CMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START四.实验结果。
微机原理课程设计 字符显示.

某某学院微机原理课程设计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中断的有关功能。
二、设计方案在课程设计之前,首先要明确设计的目的。
本次课程设计的题目是字符图形显示,要求我们能够编写一个汇编程序,正确的显示所要求的字符。
微机原理及接口技术实验报告 显示一个字符串

微机原理及接口技术实验报告实验项目名称:显示一个字符串实验日期:实验成绩:实验评定标准:一、实验目的1.熟悉汇编语言源程序上机的过程和方法2.掌握宏汇编程序MASM5.1的链接程序LINK3.6的使用方法。
3.了解DEBUG调试汇编语言程序的过程和方法。
二、实验器材电脑、微型计算机原理及应用实验指导书及教科书三、实验内容(实验过程)1.编辑源程序利用文本编辑工具,生成一个汇编程语言程序的纯文本文件ASM。
在汇编源程序中,一行只能写一条语句。
2.汇编源程序3.链接目标程序4.调试可执行程序四、实验程序data segmentmesage db" how do you do" ,0dh,0ah,24hdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axlea dx,mesagemov ah,09hint 21hmov ah,4chint 21hcode endsend start四、实验结果及分析分析:在汇编链接目标文件之后执行文件会出现“how do you do”。
若改变mesage db" how do you do" ,0dh,0ah,24h中的how do you do输入你想输出的字符串就可以了。
如果程序执行情况与预期不同,或执行时操作系统报告出错信息,就要通过调试工具进行动态调试,查找程序的问题。
查到问题后,又重回到第一步,重新开始,修改源程序问题。
微机汇编实验七屏幕字符显示程序

实验时间:2014年6月4日实验成绩评定:姓名:黄涛学号:2012311419实验七屏幕字符显示程序实验目的:通过实验掌握下列知识:1、8086/8088指令: JMP,CMP,LEA,CMPBS。
2、利用DOS功能调用INT21H的2号、8号、9号和0A号功能进行屏幕显示的方法。
3、IBM-PC机的ASCII码表及控制字符。
实验内容及步骤:一、利用INT 21H 2号功能显示字符:1、用A命令在100H处键入下列程序:XOR DL,DLMOV CX,100LOP:MOV AH,2INT 21INC DLPUSH CXMOV CX,8DELY: PUSH CXMOV CX,0J: LOOP JPOP CXLOOP DELYPOP CXLOOP LOPINT 202、用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。
仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?3、按CTRL+BREAK退出此程序,若一次不行可多做几次。
二、自编一个程序, 在显示器上显示“How are you ?”,然后读一个字符,但不显示此字符,若读入字符是‘y’,则显示‘ok’。
解:程序如下:DSEG SEGMENTDAT1 DB 'HOW ARE YOU?',0DH,0AH,'$'DAT2 DB 'OK',0DH,0AH,'$'DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEGMOV DS,AXMOV DX,OFFSET DAT1MOV AH,9INT 21HMOV AH,8INT 21HCMP AL,'Y'JNE NEXTLEA DX,DAT2MOV AH,9INT 21HNEXT: MOV AH,4CHINT 21HCSEG ENDSEND START程序编译:程序运行:1.输入“Y”:2.输入其他字符:三、自编一个程序, 屏幕显示“PASS WORD ?”,随后从键盘读入字符串,并比较这个字符串与内部设定的字符串,若两者相同,则显示“ok”,否则不作任何显示。
微机原理实验用表格形式显示字符

实验课程名称微机原理实验实验项目名称用表格形式显示字符实验指导教师学生姓名学院理学院专业电子信息科学与技术年级2020级(一)班学号实验时间2020年12月20日总成绩教师签名1. 实验目的⑴熟悉堆栈指令的功能与应用。
⑵把握子程序挪用的方式和应用。
⑶把握经常使用寄放器的利用方式和不同寄放器的利用限制。
2. 实验内容⑴按15*16的表格形式显示ASCII码为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的顺序依次显示对应的字符。
每16个字符为一行,每行中的相邻两个字符之间用空白字符(ASCII码为0)隔开。
3. 实验预备⑴熟悉堆栈指令概念、功能及应用。
⑵认真预习有关子程序挪用的方式、了解入口参数及出口参数、元挪用及进挪用。
③按正常的方式编写程序实现表格显示(15×16)ASCII的所有字符。
4. 实验步骤实验1 用表格形式显示字符一、题目:用表格形式显示ASCII字符二、实验要求:按15*16的表格形式显示ASCII码为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的顺序依次显示对应的字符。
每16个字符为一行,每行中的相邻两个字符之间用空白字符(ASCII码为0)隔开。
3、提示:⑴显示每一个字符可利用功能号为2的显示输出功能挪用MOV AH,2MOV DL,10H;字符从10H开始,每显示一个DL+1产生下一个字符INT 21H⑵显示空白符时DL=00H;⑶每行显示终止时需要显示回车(ASCII码为0DH)和换行(ASCII码为0AH),本行显示终止后可另起一行显示。
分析:①此题中可把DL初始化为10H, 然后不断使其加1(用INC指令) 以取得下一个字符的ASCII码。
②显示空白符时,用其ASCII码0置入DL 寄放器,每行终止时,用显示回车(ASC||为0DH)和换行符(ASCII为0AH)来终止本行并开始下一行。
③由于逐个显示接踵的ASCII字符时,需要保留并非断修改dl寄放器的内容,而显示空白、回车、换行符时也需要利用DL寄放器,为此可利用堆栈来保留接踵的ASCII字符。
微机原理与接口技术--实验二 屏幕字符显示程序

北京X X大学实验报告课程(项目)名称:实验二屏幕字符显示程序学院:专业:班级:学号:姓名:成绩:2013年 12月 10 日一、任务与目的1. 实验任务:(1) 熟悉和掌握利用DOS调用进行屏幕显示的方法;(2) 掌握屏幕字符显示程序的编写。
2. 实验目的:(1) 熟悉字符串表示的语法结构;(2) 熟悉利用DOS调用编写字符屏幕显示的基本程序。
二、原理(条件)1.相关知识:(1) 字符串显示格式;(2) 熟悉DOS调用使用方法。
2.实验条件:MASM汇编程序及TD调试软件。
三、内容步骤1.编写程序在屏幕上显示“Our Team: 姓名拼音+姓名拼音!”,观察执行情况并分析结果。
参考程序如下,请在参考程序之上改写。
DATA SEGMENTSTRING DB 'hello,everybody!.You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,STRINGMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START四、数据处理(现象分析)实验结果:实现代码:DATA SEGMENTSTRING DB 'Our team:Lingwei zhangzhengqiangcaoruanruan',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,STRINGMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START五、结论通过参照示例程序完成实验时,对实验结果的观察并结合课本对实验现象的分析可得知:DOS系统功能调用是利用软中断指令INT 21来实现的,方法如下,1.AH←功能号;2.在指定寄存器中放入该功能所要求的入口参数;3.执行INT 21H指令;4.分析出口参数此外,要将一个字符串送到显示器显示,需要调用DOS功能的9号功能,该功能要求被显示的字符串必须以“$”字符作为结束符,否则会引起屏幕乱码。
微机原理与接口技术实验教案

微机原理与接口技术实验讲义物理与电子工程学院罗长更显示程序实验 (3)数据传送实验 (4)运算类程序实验 (6)分支程序设计实验 (14)循环程序设计实验 (16)综合程序设计实验 (18)SHR AL,4图1CMP AL,0AH ;是否是A以上的数JB C2ADD AL,07HC2: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AL,DS:[DI]AND AL,0FH ;取低4位CMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AX,4C00H ;返回DOSINT 21HCODE E NDSEND START数据传送实验END START将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:MOV BX,0MOV CX,LENNEXT: MOV AL,MSR[BX]MOV ES:MSD[BX],ALINC BXLOOP NEXT运算类程序实验实验目的(1) 掌握运算类指令编程及调试方法。
(2) 掌握运算类指令对各状态标志位的影响及测试方法。
实验内容及说明80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对表1所示的数据类型进行算术运算。
表11.二进制双精度加法运算本实验要求计算X+Y=Z,将结果Z输出到屏幕,其中X=001565A0H,Y=0021B79EH。
实验利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。
由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。
在80386以上微机中可以直接使用32位寄存器和32位加法指令完成本实验的功能。
2.十进制数的BCD码减法运算本实验要求计算X-Y=Z,其中,X、Y、Z为BCD码,其中X=0400H,Y=0102H。
微机原理键盘扫描及显示完整实验报

实验9键盘扫描及显示实验
实验时间2019年12月18日
实验类型■验证性□设计性□综合性
1.实验目的
了解键盘扫描及数码显示的基本原理,熟悉8255的编程。
2.实验内容及过程(主要内容、操作步骤)
将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4X4键盘,每个数码管显示值可为0~F 共16个数。
实验具体内容如下:将键盘进行编号,记作0~F,当按下其中-一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
3.测试数据及实验结果
4.实验分析及总结(主要考察内容)
通过本次实验,我理解了键盘扫描及数码显示的基本原理,通过理解分析程序,自己对程序进行了一些总结和修改,并进行了验证,进一步掌握了微机接口的学习方法。
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结
1/ 1。
2023年微机原理实验指导书

2.1系统生疏试验【试验目的】把握TD 系列微机原理及接口技术教学试验系统的操作,生疏Wmd86 联机集成开发调试软件的调试环境。
【试验设备】PC 机一台,TD-PITE 试验装置一套。
【试验内容】编写试验程序,将00H~0FH 共16 个数写入到内存3000H 开头的连续16 个存储单元中。
【试验步骤】1.运行Wmd86 软件,进入Wmd86 集成开发环境。
2.在设置菜单中选择“汇编语言”和“16 位存放器”。
3.单击文集菜单的建命令,建一个文档,默认文件名为Wmd861。
4.编写试验程序,并保存,此时系统会提示输入的文件名,输完后点击保存。
5.单击编译文件,假设程序编译无误,则科技连续单击进展链接,链接无误前方可以加载程序。
6.连接PC 与试验系统的通讯电缆,翻开试验系统电源。
7.编译、链接都正确并且上下机通讯成功后,就可以下载程序,联机调试了。
可以通过端口列表中的“端口测试”来检查通讯是否正常。
点击下载程序。
为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。
下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。
起始运行语句下会有一条绿色的背景。
8.将输出区切换到调试窗口,试验命令D0000:3000 查看内存3000H 起始地址的数据。
9.点击按钮运行程序,等待程序运行停顿后,通过命令来观看程序结果。
10.也可以设置端点,要修改内存中的数据可以使用命令E,如E0000:3000 可以修改地址0000:3000 处的数据,修改完一个后,可按“空格”键连续输入下一个数。
输入完成后按“回车”键退出。
2.2数制转换试验【试验目的】1 把握不同进制数及编码相互转换的程序设计方法,加深对数值转换的理解。
2.生疏程序调试的方法。
【试验设备】PC 机一台,TD-PITE 试验装置一套。
【试验内容】编写程序,将ASCII 码表示的十进制数转换为二进制数。
【试验步骤】1.依据程序流程图编写程序。
南华大学微机原理汇编实验2及代码实现显示‘hello,world!

微机原理实验2 字符及字符串的输入与输出班级学号姓名实验时间:年月日实验成绩:1.实验目的利用汇编及连接程序,实现字符及字符串的输入与输出,要求运用系统功能调用INT21H。
完成创建源程序文件,汇编,连接,运行,实验结果的查看。
完成下面两个任务:a.在屏幕上显示‘hello,world!’b.从键盘上输入一个英文字符,然后显示其ascii二进制代码。
2.实验原理a.输入单字符这是1号系统功能调用,使用格式如下所示:它没有入口参数,执行1号系统功能调用时,系统等待键盘输入,待程序员按下任何一键,系统先检查是否Ctrl-Break键,如果是则退出,否则将键入字符的ASCII码置入AL寄存器中,并在屏幕上显示该字符b.输入字符串这是0AH号系统功能调用,其功能是将键盘输入的字符串写入到内存缓冲区中,因此必须事先在内存储器中定义一个缓冲区。
其第1字节给定该缓冲区中能存放的字节个数,第2字节留给系统填写实际键入的字符个数,从第3个字节开始用来存放键入的字符串,最后键入回车键表示字符串结束。
如果实际键入的字符数不足填满缓冲区时,则其余字节填“0”;如果实际键入的字符数超过缓冲区的容量,则超出的字符将被丢失,而且响铃,表示向程序员发出警告。
0AH号系统功能调用的使用格式如下所示:……BUF DB 20DB ? 定义缓冲区DB 20 DUP(?)……MOV DX,OFFSET BUFMOV AH,0AH 0AH号系统功能调用INT 21H以上程序中,由变量定义语句定义了一个可存放20个字节的缓冲区,执行到INT21H 指令时,系统等待用户键入字符串。
程序员每键入一个字符,其相应的ASCII码将被写入缓冲区中,待程序员最后键入回车键时,由系统输出实际键入的字符数,并将其写入缓冲区的第2字节中。
c.单字符这是2号系统功能调用,使用格式如下所示:MOV DL,‘A’MOV AH,2INT 21H执行2号系统功能调用时,将置入DL寄存器中的字符从屏幕上显示输出(或打印机打印输出)。
微机原理Emu8086仿真软件实验讲义剖析

实验一显示程序实验1.emu8086介绍Emu8086-Assembler and Microprocessor Emulator是一个可在Windows 环境下运行的8086CPU汇编仿真软件,Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,它优于一般编译器的地方在于提供了一个虚拟的80x86环境,拥有自己一套独立的“硬件”,可以完成一些纯软件编译器无法完成的功能例如Led显示,交通灯,步进电机等等,而且动态调试(DEBUG)时非常方便一.软件启动启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。
注册的用户名随意,密码112,即可成功。
二.新建文件单击图1中的“New”选项,软件会弹出如图2所示的选择界面。
●COM模板——适用于简单且不需分段的程序,所有内容均放在代码段中,程序代码默认从ORG 0100H开始;●EXE模板——适用于需分段的复杂程序,内容按代码段、数据段、堆栈段划分。
需要注意的是采用该模板时,用户不可将代码段人为地设置为ORG 0100H,而应由编译器自动完成空间分配;●BIN模板——二进制文件,适用于所有用户定义结构类型;●BOOT模板——适用于在软盘中创建文件。
此外,若用户希望打开一个完全空的文档,则可选择empty workspace的选项。
三.编译和加载程序用户可根据上述选择的模板中编写程序,如图3所示。
该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体,其菜单功能如表1所示。
编写完程序后,用户只需单击工具栏上的“compile”按钮,即可完成程序的编译工作,并弹出如图4所示的编译状态界面。
若有错误则会在窗口中提示,若无错误则还会弹出保存界面,让用户将编译好的文件保存相应的文件夹中。
默认文件夹为…\emu8086\MyBuild\,但您可以通过菜单中assembler/ set output directory对默认文件夹进行修改。
字符显示的微机实验报告

一、实验目的1. 了解字符显示微机的基本原理和结构;2. 掌握字符显示微机的编程方法;3. 学会使用字符显示微机进行简单的数据处理和显示。
二、实验原理字符显示微机是一种基于微处理器的字符显示设备,它可以用于显示文本、图形等信息。
字符显示微机主要由以下几个部分组成:1. 微处理器:字符显示微机的核心部分,负责控制和协调各个模块的工作;2. 存储器:包括只读存储器(ROM)和随机存储器(RAM),用于存储程序和数据;3. 输入设备:如键盘、鼠标等,用于输入数据和指令;4. 输出设备:如显示器、打印机等,用于输出结果和显示信息;5. 接口电路:用于连接各个模块,实现数据传输和通信。
字符显示微机的基本工作原理是:微处理器根据程序指令,从存储器中读取数据,进行计算和逻辑判断,然后将结果输出到显示器上显示。
三、实验仪器与设备1. 字符显示微机一台;2. 键盘一个;3. 显示器一个;4. 电源一个。
四、实验步骤1. 启动字符显示微机,进入操作系统界面;2. 编写程序,实现以下功能:(1)定义一个字符数组,用于存储要显示的文本;(2)使用循环语句,逐个字符地在显示器上显示数组中的内容;(3)使用条件语句,实现显示内容的换行;(4)使用延时函数,实现显示内容的暂停效果;3. 编译程序,生成可执行文件;4. 运行程序,观察显示效果。
五、实验结果与分析1. 编写程序:```c#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main() {char text[] = "Hello, world!";int i = 0;while (text[i] != '\0') {printf("%c", text[i]);i++;usleep(200000); // 延时200毫秒}printf("\n");return 0;}```2. 编译程序,生成可执行文件:`gcc -o display_text display_text.c`3. 运行程序,观察显示效果:在显示器上,程序将逐个字符地显示文本“Hello, world!”,每个字符之间有200毫秒的暂停效果。
微机原理数码显示hello

实验二数码显示一、实验目的了解LED数码管动态显示的工作原理及编程方法。
二、实验内容编制程序,使数码管显示“HELLO”字样。
三、实验程序框图四、实验过程1、启动运行DICE-8086K软件,屏幕显示DICE-8086K软件的工作窗口,底边状态栏由“下位机没有连接….”变成“连接上下位机”,说明联机成功,否则会弹出对话框提示:“下位机没有连接…”。
单击工具栏上的“重新连接”按钮可以联机,一定要保证上下位机联机成功。
将试验箱上的通讯开关打到最下端86/88档。
2.进入DICE-8086K软件后,默认会打开一个编辑窗口Editor,此时可在此编辑、输入源程序。
输入的源程序如下:CODE SEGMENTASSUME CS:CODESTART: JMP TODA TA DB 89H,86H,0C7H,0C7H,0C0HTO:LEA SI,DA TAMOV BL,11101111BNEXT: MOV DX,0FF20HMOV AL,BLOUT DX,ALROR BL,1CMP AL,10111111BJZ TOMOV DX,0FF21HMOV AL,[SI]OUT DX,ALINC SICALL DELAYJMP NEXTDELAY PROCMOV CL,0FFHX1:DEC CLJNZ X1DELAY ENDPHLTCODE ENDSEND START保存编写好的程序,保存的文件名后缀为.ASM ,保存后,单击工具栏上的编译装载图标,几秒钟后会弹出“编译成功”对话框,单击“OK”,再等几秒钟会弹出“装载成功”对话框,单击“OK”即编译装载完毕。
3、观察试验箱上的数码管显示是否为HELLO,若不是则需检查程序是否出错。
五、实验总结1、学会了数码管的控制方法,以及DICE-8086K软件的使用方式。
2、学会了延时汇编程序的一般书写以及调用。
微机原理实验七 字符和数据的显示程序

实验七字符和数据的显示程序1要求:显示信息“输入字符串,回车或空格结束”,回车或空格后显示输入字符串总字节数,数字字符(1--9)及非数字字符数。
2目的:掌握字符和数据的显示方法实验程序CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS1 DB'please input the string,press enter or space end$' MESS2 DB'the total of word= $'MESS3 DB'the total of word except number= $'MESS4 DB'the total of number word= $'TOTAL DW?DATA ENDSSTACK SEGMENTSTA DW 32 DUP (?)TOP DW?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,TOP ;初始化MOV BX,0000H ;计数值清0MOV AH,09HMOV DX,OFFSET MESS1INT 21HCRLFXXX: MOV AH,01HINT 21H ;接收键入字符CMP AL,20HJZ UUU ;是空格键则转UUUCMP AL,0DHJNZ IIICRLF ;是回车键则转UUU JMP UUUIII: CMP AL,30HJB YYYCMP AL,39HJBE VVV ;`0-9`转VVV YYY: INC BX ;计数值加1 VVV: INC TOTALJMP XXXUUU: CRLFMOV AH,09HLEA DX,MESS2 ;显示字符总数 INT 21HMOV AX,TOTALCALL DISPMOV AH,02HMOV DL,'H'INT 21HCRLF ;回车换行MOV AH,09HMOV DX,OFFSET MESS3INT 21H ;显示非数字字符总数MOV AX,BXCALL DISPMOV AH,02HMOV DL,'H'INT 21H ;十六进制数标志CRLFMOV AH,09HLEA DX,MESS4 ;显示数字字符总数INT 21HMOV AX,BXSUB TOTAL,AXMOV AX,TOTALCALL DISPMOV AH,02HMOV DL,'H'INT 21HMOV AX,4C00HINT 21HDISPP PROC NEAR ;显示子程序,显示AL中的数按十六进制数方式MOV BL,AL ;AL中数送BLKKK: MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPL ;显示字节高位MOV DL,BLAND DL,0FHCALL DISPL ;显示字节低位RETDISPP ENDPDISPL PROC NEARADD DL,30H ;由数值转为参应字符的ASCII码CMP DL,3AHJB DDD ;是0-9转DDDADD DL,27H ;是A-FDDD: MOV AH,02HINT 21H ;显示DL中字符RET ;返回DISPL ENDP ;显示子程序,显示AX中的数按十六进制数方式DISP PROC NEARPUSH BXPUSH CXPUSH DXPUSH AX ;入栈保存MOV AL,AHCALL DISPP ;显示高字节POP AXCALL DISPPPOP DXPOP CXPOP BXRET ;出栈DISP ENDPCODE ENDSEND STARTX。
微机原理课程设计 字符串动画显示

河北科技大学课程设计报告学生姓名张青学号:09L专业班级:电科L092课程名称:字符串动态显示学年学期:2 0 1 1—2 0 1 2学年第1学期指导教师:张永强赵艳2 0 11年12月课程设计成绩评定表学生姓名张青学号09L 成绩专业班级电科L092 起止时间2011-12-24 至2011-12-28 设计题目字符串动画显示指导教师评语指导教师:年月日一、课程设计的目的和任务课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。
所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。
通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。
培养学生事实求是和严肃认真的工作态度。
通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
微机原理实验六从键盘输入数据并显示

实验六从键盘输入数据并显示1要求:编写程序,将键盘接收到的四位十六进制数转换为等值的二进制数,并显示在屏幕上。
若输入的不是0—F间的数字,则显示出错信息,并要求重新输入。
2目的:掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。
实验程序CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMARK DB?MESS DB'please input the number(H),press inter,ture into number(B).press space end.',0DH,0AH,'$'ERROR DB 0DH,0AH, 'input error',0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW32 DUP(?)TOP DW?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,TOPHEAD: CRLFMOV MARK,0MOV AH,09HLEA DX,MESSINT 21H ;显示提示输入的信息CALL GETNUM ;接收键入数值送DXCMP MARK,01HJE HEADMOV CX,0010H ;16位MOV BX,DXTTT: ROL BX,1 ;循环左移1位MOV DL,BLAND DL,01H ;屏蔽掉高7位ADD DL,30HMOV AH,02HINT 21H ;显示二进制位对应的ASCII字符LOOP TTTJMP HEADFINI: MOV AX,4C00HINT 21H ;返回DOSGETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CXXOR DX,DXGGG: MOV AH,01HINT 21HCMP AL,0DH ;输入为回车,则进行转换JE PPPCMP AL,20H ;输入为空格,则退回DOSJE FINICMP AL,30HJB KKKSUB AL,30HCMP AL,0AHJB GETSCMP AL,11HJB KKKSUB AL,07HCMP AL,0FHJBE GETSCMP AL,2AHJB KKKCMP AL,2FHJA KKKSUB AL,20HGETS: MOV CL,04SHL DX,CLXOR AH,AHADD DX,AXJMP GGGKKK: MOV AH,09HMOV DX,OFFSET ERRORINT 21HMOV MARK,01HPPP: PUSH DXCRLFPOP DXPOP CXRETGETNUM ENDPCODE ENDSEND START。
微机原理字符及字符串输入输出与顺序程序设计实验

2.2 字符及字符串输入输出与顺序程序设计实验2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。
2、掌握顺序程序的设计方法。
3、进一步掌握调试工具的使用方法。
2.2.2 实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。
2、复习BCD码运算调整指令。
3、根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。
4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.2.3实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。
由于数字0 9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H 用于单个字符输出的DOS功能调用将它们显示出来。
综上所述,需要考虑以下问题。
(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。
微机应用课程设计-字符图形显示

微机应用课程设计任务书20 12 -20 13 学年第 1学期第 16 周- 16 周Array注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。
2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。
摘要本次课程设计是通过使用汇编语言来完成,具体实现方法可通过在MASM实验环境下运行,也可以通过在DOS环境下完成。
我们这组做的课程设计是通过编写汇编语言程序,实现字符图形的显示,我们此次做的是显示字符——南昌航空大学欢迎你!。
编写完程序后分析并理解每条程序的意思,并解释主要程序的意思,最后调试出所要求的字符。
通过这次课程设计,我们更加了解了汇编语言的应用,并且能够按要求编写出程序,从而提高了我们的汇编语言知识,更进一步地了解了汇编语言。
一、设计题目字符图形的设计——南昌航空大学欢迎你!二、设计内容用多字符图形显示功能显示图形“南昌航空大学欢迎你!”10个字符。
三、小组分工本次课程设计我们选择的课题是字符图形显示,成员共有6人。
李丽波和廖书强共同主持分析课题要求,写出设计规划,并辅助组员完成设计。
具体分工如下:李丽波:负责主程序的编写与调试以及资料分析.廖书强:负责根据汉字取模编出汉字代码程序。
李乐州:负责汉字的取模部分及部分汉字代码程序编写。
林圣阳:负责流程图的设计部分,确定主程序思路。
伍齐羽:负责课题报告的规范与布局及延时子程序设计。
郭苏昊:负责整体程序最终的调试以及显示结果的修整。
四、设计思路1 、设计总体思路本程序是显示由多个字符组成的图形的程序,需要将多个字符定义在一个字符图形表里。
字符图形表包括每个字符的ASCII码、属性以及在显示图形中的相对位移量(相对位移量是指前一个字符和当前要显示的字符之间的行距和列距)4个参数组成。
字符图形表中的第一个字节“252”是组成图形的字符数,编写程序时需要将每个字符的ASCII码和属性以及显示的位置放入相应的寄存器中,然后发出显示命令,当252个字符都显示出来后,我们就可以看到一个“字”的图形。
微机原理字符串动画显示

课程设计报告学生姓名: 甄晓学号:130704121专业班级:电科131班课程名称: 微型计算机原理及应用技术学年学期: 2015—2016学年第一学期同组人员: 张思雨张文娟张哲姚博朗指导教师:赵艳20 15年12月课程设计成绩评定表目录一设计目得 (1)二设计任务与要求 (1)三设计内容 (1)四源代码以及主要代码分析 (5)五效果及功能展示 (1)2六自己得贡献与心得体会···········14字符串得动画显示程序设计一、设计目得:1、掌握汇编语言,会利用汇编语言编写一定功能得程序;2、熟悉DOS环境以及在DOS下会调试编写好得汇编程序;3、熟悉常用得DOS功能;4、小组合作完成设计题目。
二、设计任务与要求1、设计字符串得动画显示程序2、程序设计基本要求1)菜单内容包括:①输入字符串;②字符串动画显示;③退出。
2)输入字符串选择该项后,可以输入一个字符串。
该字符串即为动画显示时所显示得字符串.3)字符串动画显示所显示字符串在一矩形框内从无到有,从右至左移动,完全从框内移出后,又从右至左移动,直到有任意键按下,停止字符串动画显示返回到主菜单。
4)在主菜单中选择退出项,则结束程序返回DOS。
三、设计内容:1、使用得DOS功能:1)ﻩ显示字符串 MOV AH,09HINT21H ;入口参数DS:DX=缓冲区2)ﻩ键盘输入一个字符 MOV AH,01HINT 21H ; AL=输入得字符3)终止当前程序并返回调用程序MOV AH,4CHINT 21H ;AL=退出码4)输入字符串 MOV AH,0AHINT 21H ;入口参数DS:DX=缓冲区2、使用工具与软件:PC机一台,MASM汇编软件3、流程图:1)字符串从右向左移动字符串从右向左移流程图2)整体流程图START: MOV AX,CODEMOV DS,AXMOV AX,0B800HMOV ES,AXCLDAGAIN: MOV AX,3INT 10H;显示文字 LEA DX,MENUMOV AH,9 ;输出字符串INT 21HINPUT: MOVAH,1INT 21H ;从键盘输入字符CMP AL,’1'JNE CP2CALL SUB01;JMP INPUTCP2: CMPAL,’2’JNZCP3CALL SUB02 ;字符串左右移动JMP AGAIN ;返回到主菜单CP3:CMP AL,’3' ;返回DOSJNZ INPUTLEA DX,MESGMOV AH,9INT 21HMOV AH,1INT 21HMOV AH,4CHINT 21HDELAY PROCPUSH CXPUSH DXMOV DX,0100 D1: MOV CX,0FFFH LOOP $DEC DXJNZ D1POP DXPOP CXRETDELAY ENDPCSH: MOV AL,20HMOV CX,60;初始化CS1: REP STOSBRETSUB01: MOV AX,0E0DHINT 10HMOV AL,0AHINT 10HLEA DX,STR1MOV AH,0AHINT 21H ;输入一个字符串MOV AX,0E0AHINT 10H ;换行;RETSUB02: CMP STR1+1,2 ;取串长最短为2个字符 JNBY2JMP QUITY2:CALL LINE ;画矩形框MOV DX,ESPUSH DSPOP ESMOV DI,1000HCALL CSHMOV CL,STR1+1MOV CH,0;取串长LEA SI,BUF ;指向串首MOV DI,1000HADD DI,60-1MOVNUM,DIADD NUM,CXREP MOVSB ;移至显示缓冲区,重复存储字符串 CALL CSHSHOW: MOV ES,DXMOV BP,1000H ;恢复数据区Y3: MOV SI,BP ;置源数据区指针MOV DI,LEFT ;找屏幕位置MOV AH,7CHMOVCX,60-2Y4: LODSBSTOSW ;送显存LOOPY4MOV AH,1INT 16HJNZ SSS ;按任意键,返回主菜单CALL DELAYINC BP ;源数据区指针后移一位CMP BP,NUMJB SS1MOV BP,1000H ;恢复数据区SS1: JMP Y3SSS: MOVSTR1+1,0QUIT: XOR DI,DIMOV CX,80*25MOV AX,720HREP STOSW ;清全屏;RETJMP AGAINLINE:MOVDI,(18*80+10)*2 ;矩形框MOV AL,201 ;左上角MOV AH,0EHSTOSWMOV CX,60-2MOVAL,205 ;横框REP STOSWMOV AL,187 ;右上角STOSWADD DI,20*2MOV AL,186 ;竖框STOSWMOV LEFT,DIMOV CX,60—2MOVAL,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,0AH DB 25 DUP(''),186,’ 1、Input a String 、、、’,186,0DH,0AHDB 25 DUP(''),186,' 2、Display Model 、、、',186,0DH,0AHDB 25 DUP(' '),186,' 3、Return to DOS 、、、',186,0DH,0AHDB 25 DUP(''),200,21 DUP(205),188,0DH,0AHDB 28 DUP(' '),’Choice(1,2,3):$'MESG DB0dh,0ah,0dh,0ah,9,'Press anykey to e xit 、、、$'NUM DW 0LEFT DW 0RIGHT DW 0STR1 DB 21DB0BUFDB 0DH,20 DUP(0)CODEENDSEND START五、功能效果展示(1)运行程序后显示得主菜单(2)按“1”显示待输入字符串状态(3)按“2”字符串在矩形框中从右向左移动(4)按“3”显示按任意键返回(5)按任意键返回六、自己得贡献与心得体会ﻫ一次微机原理课程设计,一次全新得体验,在这次课程设计中,我们获益良多。
微机原理课设-显示姓名字样的程序

学号:0121211350313微机原理及接口技术课程设计题目显示姓名字样的程序学院自动化学院专业电气工程及其自动化班级电气1203姓名杨敏指导教师李道远2014 年12 月27 日课程设计任务书学生姓名:杨敏专业班级:电气1203 指导教师:李道远工作单位:自动化学院题目: 显示姓名字样的程序初始条件:编写显示“自己姓名”字样的程序。
并能由小到大,由大到小变化。
按Q退出程序。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)设计任务及要求分析(2)方案比较及认证说明(3)系统原理阐述(4)硬件设计课题需要说明:硬件原理,电路图,采用器件的功能说明(5)软件设计课题需要说明:软件思想,流程图,源程序及程序注释(6)调试记录及结果分析(7)总结(8)参考资料(9)附录:芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图目录1.课程任务及其要求分析 (4)2.系统原理阐述 (4)3.汇编语言程序设计 (5)3.1主程序设计及其原理分析 (5)3.1.1设计思路 (5)3.1.2流程图 (5)3.1.3主程序 (6)3.2各子程序原理分析 (8)3.2.1三种字体输出子程序及其功能说明 (8)3.2.2延迟子程序及其功能说明 (9)3.2.3清屏子程序及其功能说明 (9)3.2.4换行子程序及其功能说明 (10)4.程序测试记录及其结果分析 (10)5.小结 (12)6.参考文献 (12)1.课程任务及其要求分析对任务书进行分析可知,本课程设计的任务为用汇编语言设计显示自己姓名的程序并且要求姓Q键退出程序。
设计的基本要求为认真编写程序,并在规定的时间内写好课程设计报告书,报告书的基本要求为(1)设计任务及要求分析(2)系统原理阐述(3)软件思想,流程图,源程序及程序注释(4)调试记录及结果分析(5)总结(6)参考资料,(7)最后附上《本科生课程设计评定表》并且在规定的时间内完成课程设计报告书,提交报告书并进行答疑2.系统原理阐述分析设计任务及要求可以得知编写此汇编程序的基本原理,编写一个主程序和若干个子程序(延时子程序、换行子程序、清屏子程序、显示姓名子程序)来完成设计任务所要求的功能,用这种方法比较简单,主程序完成的功能为:首先要输出开始语句,提示用户输入字体规格,取得字体规格后调用输出姓名子程序,为了使我们能够看到自己的名字必须调用延时子程序以增加显示的时间,调用结束马上输出结束语句,提示用户是按Q退出还是按N继续输出姓名,当得到N以后必须马上清屏,然后再次调用提示信息子程序和显示姓名子程序,换行子程序的原理为通过int 21h的02h功能来完成,清屏子程序的原理为通过int 10h的06h的屏幕上卷功能来完成清屏通过AL可以设计一次清屏的行数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验课程名称微机原理实验
实验项目名称用表格形式显示字符
实验指导老师
学生姓名
学院理学院
专业电子信息科学与技术年级2008级(一)班
学号
实验时间2010年12月20日
总成绩
教师签名
编译源程序:
连接成已.EXE为扩展名的目标文件:
运行程序,验证程序设计是否符合设计要求:
又上图运行结果可知,程序设计正确。
5. 实验报告总结
本实验程序设计中需要多次显示回车,空格,换行字符,所以在程序设计中如果不使用模块设计方法,将会使程序非常冗长。
所以本实验在编写程序时把需要反复显示的字符用一个字程序来实现,当需要显示字符时,只需对入口参数正确赋值,然后调用子程序,这样使程序简洁、清晰明了。
但是需要特别注意的是在调用子程序时,如果存放入口参数值的寄存器在程序的其他地方需要用到时,那么在调用子程序之前一定要对该寄存器压栈保护,否则将会影响程序结果的正确性。
列入本实验的中,DX中存放的是ASCII字符的十六进制值,且程序每执行一次,DX加一,指向下一个ASCII 字符,而在调用子程序显示空格、回车、换行时需要对DX赋相应的值,因此在调用子程序时需先对DX压栈保护,调用结束后恢复DX的值。