微机原理字符串动画显示
- 格式:doc
- 大小:179.00 KB
- 文档页数:19
《微机原理与接口》实验报告学院:信息学院专业:班级学号:学生姓名:实验日期:指导老师:五邑大学信息学院接口与通信实验室实验一一、实验名称:微机原理实验平台操作及汇编程序设计二、实验目的:1、了解MFID实验平台组成结构及使用方法;2、熟悉MFID实验平台的工作原理和MF2K编程环境;3、熟悉80X86的汇编语言程序设计方法;4、掌握BCD码转换为二进制的的原理及汇编程序设计;5、理解INT 21H DOS 字串显示功能的调用。
三、实验内容:1、MFID实验平台MF2K编程环境的熟悉2、屏幕输出字串的简单汇编程序设计3、进行汇编语言程序的编辑、汇编、连接和运行实验;4、编制16进制转换为ASCII码的子程序HEX_ASCII;5、编制BCD转换为二进制的子程序BCD_B;6、调用BCD_B和HEX_ASCII子程序完成十进制数转换为二进制数四、实验设备:MFID 微型计算机与接口技术实验平台五、实验步骤:1、进入MF2K汇编语言开发环境,开始汇编程序设计;2、设计主程序框架:堆栈段、数据段和代码段;3、设计“字符串显示程序”,调试并在屏幕自己的“班级”、“学号”及“名字”的拼音字母;4、设计“十六进制转换为ASCII码子程序”HEX_ASCII,调试并通过5、设计“BCD码转换为二进制子程序”BCD_B;6、在主程序中将自己的“班级号+学号”定义成4位BCD码然后调用BCD_B子程序转换为二进制;7、调用HEX_ASCII在屏幕上显示学号转换的运行结果。
六、实验结果1、调试通过的汇编实验程序源代码如下:[将源代码粘帖到下面]2、班号学号屏幕输出结果:3、四位BCD班号+学号:5123 转换结果:七、分析讨论(不少于200字)八、本次实验成绩。
微机原理课程设计报告专业:学号:姓名:一:课程设计目的结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。
学会使用命令调用DOS观察程序运行结果,学会使用汇编语言编写程序,弄懂汇编程序的执行过程,弄懂汇编程序的上机过程以及如何运用MASM软件进行汇编程序的调试。
二:设计内容1.字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。
详细源程序如下:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTS1 DB'MATCH',0DH,0AH,'$'S2 DB'NO MATCH',0DH,0AH,'$'S3 DB'INPUT STRING1:',0DH,0AH,'$'S4 DB'INPUT STRING2:',0DH,0AH,'$'MAXLEN1 DB 81ACTLEN1 DB?STRING1 DB 81 DUP (?)MAXLEN2 DB 81ACTLEN2 DB?STRING2 DB 81 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET S3INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21HCRLFMOV AH,09HMOV DX,OFFSET S4INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21HCRLFMOV SI,OFFSET STRING1MOV AH,[SI-1]MOV DI,OFFSET STRING2MOV AL, [DI-1]CMP AH,ALJGE GE1MOV CL,ALGE1: MOV CL,AHKKK: MOV AL,[SI]mov AH,[DI]CMP aH,ALJNZ NE1INC SIINC DILOOP KKKMOV AH,09HMOV DX,OFFSET S1INT 21HJMP EXITNE1: MOV AH,09HMOV DX,OFFSET S2INT 21HEXIT: MOV AX,4CHINT 21HCODE ENDSEND START以下是程序运行结果:2.从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII 码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。
微原硬件实验报告班级:07118 班学号:070547班内序号:26姓名:杨帆实验一熟悉实验环境及IO的使用一,实验目的1. 通过实验了解和熟悉实验台的结构,功能及使用方法。
2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。
3. 学会Debug 的使用及编写汇编程序二,实验内容1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,2.用汇编语言编写跑马灯程序。
(使用EDIT 编辑工具)实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的IO 端口地址为EEE0H在Debug 下,I 是读命令。
(即读输入端口的状态---拨码开关的状态)O 是写命令。
(即向端口输出数据---通过发光管来查看)进入Debug 后,读端口拨动实验台上八位拨码开关输入I 端口地址回车屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口输入O 端口地址xx (xx 表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。
2. 在Debug 环境下,用a 命令录入程序,用g 命令运行C>Debug -amov dx, 端口地址mov al,输出内容out dx, almov ah, 0bhint 21hor al, aljz 0100int 20h-g运行查看结果,修改输出内容再运行查看结果分析mov ah, 0bhint 21hor al, aljz 0100int 20h该段程序的作用3.利用EDIT 工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm录入程序按Alt 键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug 进行调试。
中断INT 21H :1、字符功能调用类(Character-Oriented Function)01H、07H和08H —从标准输入设备输入字符02H —字符输出03H —辅助设备的输入04H —辅助设备的输出05H —打印输出06H —控制台输入/输出09H —显示字符串0AH —键盘缓冲输入0BH —检测输入状态0CH —清输入缓冲区的输入功能(1)、功能01H、07H和08H功能描述:从标准输入设备(如:键盘)读入一个字符。
该中断在处理过程中将一直处于等待状态直到有字符可读为止。
该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾入口参数:AH=01H,过滤掉控制字符,并回显=07H,不过滤掉控制字符,不回显=08H,过滤掉控制字符,不回显出口参数:AL=输入字符的ASCII码(2)、功能02H功能描述:向标准输出设备(如:屏幕)输出一个字符。
该输出还可被重定向,如果这样做,则将无法判断磁盘是否满入口参数:AH=02HDL=待输出字符的ASCII码出口参数:无(3)、功能03H功能描述:从辅助设备读入一个字符,该辅助设备的缺省值为COM1入口参数:AH=03H出口参数:AL=读入字符的ASCII码(4)、功能04H功能描述:向辅助设备输出一个字符,该辅助设备的缺省值为COM1入口参数:AH=04HDL=待输出字符的ASCII码出口参数:无(5)、功能05H功能描述:向标准的输出设备输出一个字符。
该缺省的输出设备为LPT1端口的打印机,除非用MODE命令来改变入口参数:AH=05HDL=待输出字符的ASCII码出口参数:无(6)、功能06H功能描述:控制台(如:键盘、屏幕)输入/输出。
如果输入/输出操作被重定向,那么,将无法判断文件是否已到文件尾,或磁盘已满入口参数:AH=06H,DL=输入/输出功能选择出口参数:若DL=00H-FEH,则此功能为输出,DL为待输出字符的ASCII码;若DL=0FFH,则此功能为输入,此时:若ZF=1,则无字符可读,否则,AL=读入字符的ASCII码(7)、功能09H功能描述:输出一个字符串到标准输出设备上。
微机原理实验指导书华中科技大学计算机学院武汉豪申光电新技术有限公司目录微机原理实验 (3)第一章16位汇编语言编程验 (3)实验一系统认识实验 (3)实验二分支程序设计实验 (6)实验三循环程序设计实验 (9)实验四排序程序设计实验 (12)实验五子程序设计实验 (15)微机接口实验 (19)第一节并行接口实验(8255芯片实验) (19)实验一8255并行接口实验 (19)第二节定时/计数实验(8253芯片实验) (26)实验二音乐发声器接口实验 (26)第三节串行通信接口实验(8251芯片实验) (33)实验三 RS-232标准全双工查询方式异步串行通信实验 (34)第四节A/D D/A转换器接口实验 (42)实验四查询方式A/D转换器接口实验(ADC0809) (42)实验五 D/A函数波形发生器接口实验(DAC0832) (49)微机原理实验第一章16位汇编语言编程验实验一系统认识实验⑴实验目的掌握在MF平台中汇编程序的编写、调试方法。
⑵实验内容基本实验将存储区BUF1中的内容复制到BUF2中。
⑶实验步骤(一)方式1(Debug方式)1.在MF2KP环境下输入汇编程序,编译、连接,生成.exe文件。
2.启动调试程序(Debug)。
3.在程序的退出处设置断点,利用Add Watch命令查看BUF2中的内容是否正确。
(二)方式2(人-机交互方式)1.在MF2KP环境下输入汇编程序,编译、连接、运行。
2.按提示输入数据,在屏幕显示的结果中查看BUF1,2中的内容是否正确。
3.输入不同的字符串,可得到不同的结果。
⑷实验资源配置IBMPC微机,Win2000操作系统,MF2KP微机原理实验集成开发环境。
⑸实验软件的编程◇实验流程图如图1.1.1所示将存储区BUF1中的内容复制到BUF2中的程序主功能模块如图1.1.1中的虚线框中所示。
◇实验参考程序如下所示;*--------------------------------------------------* ;* Aexp1.asm(汇编语言编程认识实验) * ;* Copyright (c) 2002 by HUST * ;* 程序调试:在EXIT处设置断点,利用Add Watch命令 * ;* 查看BUF1和BUF2的内容是否正确 * ;*-------------------------------------------------* DATA SEGMENTBUF1 DB 'MASM HELLO WORLD'COUNT EQU $-BUF1BUF2 DB20DUP(?)DATA ENDSSTACK1 SEGMENT STACKDB20DUP(?)STACK1 ENDSCODE SEGMENTASSUME DS:DATA,SS:STACK1,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUF1 ;建立源地址指针MOV DI,OFFSET BUF2 ;建立目标地址指针MOV CX,COUNT ;字节数送入CX寄存器L1: MOV AL,[SI] ; 取源数据一个字节送入AL中MOV [DI],AL;将源数据送入目标地址单元中INC SIINC DIDEC CXJNZ L1 ;判断是否传送完毕EXIT: MOV AH,4CHINT21HCODE ENDSEND START⑹实验要求◇按要求完成实验得出正确结果.◇试着自己写出人机对话方式的汇编程序.◇完成实验报告实验二分支程序设计实验⑴实验目的掌握分支程序的结构。
第1章微型电脑系统①处理器每个单位时间可以处理的二进制数据位数称电脑字长。
②总线信号分成三组,分别是数据总线、地址总线和控制总线。
③PC机主存采用DRAM组成。
④高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。
⑤ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑦主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。
⑧MASM是微软开发的宏汇编程序。
⑨指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令〔简称取指〕,翻译指令代码的功能〔简称译码〕,然后执行指令所规定的操作〔简称执行〕的过程。
⑩机器语言层,即指令集结构。
〔学生很多认为是:汇编语言层。
前4章主要涉及汇编语言,但本书还有很多处理器原理等内容〕〔习题1.3〕填空题①Central Processing Unit,中央处理单元,处理器②1MB,4GB③216,64KB④EXE,COM⑤Instruction Set Architecture⑥目录⑦MMX,SSE3⑧64⑨IBM,DOS⑩PCI〔习题1.4〕说明微型电脑系统的硬件组成及各部分作用。
〔解答〕CPU:CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和假设干高速存储单元〔即寄存器〕。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入〔Input〕设备和输出〔Output〕设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
1 微机原理课设报告 学生姓名: 常卫洪 学号: 130704101 专业班级: 电子科学与技术131班 课程名称: 微型计算机原理及应用技术 学年学期: 2015-2016学年第 1 学期 指导教师: 赵艳
2 015年 12 月 2
课程设计成绩评定表 学生姓名 常卫洪 学 号 130704101 成绩 专业班级 电科131 起止时间 2015.12.20 至 2015.12.29
设计题目 字符串动画显示
指 导 教 师 评 语
课程设计态度: 端正 □ 较端正 □ 一般 □ 较差 □ 课程设计纪律:好 □ 较好 □ 一般 □ 较差 □ 课程设计出勤情况:好 □ 较好 □ 一般 □ 较差 □ 课程设计任务完成情况:优秀 □ 好 □ 一般 □ 较差 □ 课程设计报告完成情况:优秀 □ 好 □ 一般 □ 较差 □ 动手能力:强 □ 较强 □ 一般 □ 较差 □ 团队精神:好 □ 较好 □ 一般 □ 较差 □ 创新意识:强 □ 较强 □ 一般 □ 较差 □
指导教师: 年 月 日 3
目录 一、设计目的--------------------------------------------4 二、设计任务与要求-------------------------------------4 三、小组分工--------------------------------------------4 四、 实现方法--------------------------------------------4 五、功能效果展示---------------------------------------11
六、改进以及及建意-------------------------------------13
七、心得体会---------------------------------------------14 八、参考资料--------------------------------------------14 九、附源程序--------------------------------------------144
一、设计目的: 1、掌握汇编语言,会利用汇编语言编写一定功能的程序; 2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序; 3、熟悉常用的DOS功能; 4、小组合作完成设计题目。 二、设计任务与要求 设计内容要求: 1、菜单 内容包括:①输入字符串;②字符串动画显示;③退出。 2、输入字符串 选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。 3、字符串动画显示
所示字符串在一矩形框内一半从左另一半从右向中间移动,当两半相遇时又分别向两边移动,直至遇到两侧的边框双重新向中间移动,重复上述过程直至按任意键,则停止字符串动画显示返回到主菜单。 4、在主菜单中选择退出项,则结束程序返回DOS。 三、进度及分工安排 1. 进度安排 序号 设计内容 时间 1 查阅资料、确定设计思路 3天 2 设计实现、编写程序 3天 3 调试 1天 4 考核设计、写设计报告 2天
2. 分工安排 序号 工作内容 成员 1 确定设计思路,画流程图 陈继贤 2 编写字符串移动程序段 张恒 刘阳 3 编写菜单项,矩形框程序段 常卫洪 陈继贤 4 程序汇总 ,调试 张恒 田淑乾 四、实现方法 5
4.1 MASM编译开发环境实现 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发。 MASM版本至今在不断的更新,目前的最新版本为10.0,推荐使用新版本进行开发。MASM 5.0 是最常用的汇编连接软件 其简单操作为 输入asm文件将其连接为obj文件 用link得到exe文件。
4.2算法实现 软中断: DOS功能调用编写的程序中INT 10H和INT 21H软中断的应用。如下表:
INT 10H 功能号 功能 入口参数 出口参数 00H 设置显示模式 AL=03 80*25 彩色文本方式 无
0EH 显示字符 AL=字符 字符显示在屏幕上 INT 21H 功能号 功能 入口参数 出口参数 09H 显示字符串 DS:DX=缓冲区 0AH 输入字符串 DS:DX=缓冲区 01H 键盘输入字符 AL=输入字符 INT 16H 功能号 功能 入口参数 出口参数 00H 从键盘读字符 AL=字符码 AH=扫描码
矩形框代码:186竖框编写 187右上角编写 188右下角编写 200左下角编写 201左上角编写 205横框编写 总体流程: 6
设置三个选项分别对应选项标号。将键盘输入的标号与1、2、3相比较以确定不同的程序块调用接口。“1”输入字符串,即进入过程一;“2”动画显示所要求的字符串,即调用过程二;“3”返回DOS系统,即调用EXIT标号。 4.3流程图
: 4.4部分程序 1. 菜单程序 MENU DB 5 DUP(0AH) DB 31 DUP(' '),'MAIN MENU',0DH,0AH DB 25 DUP(' '),201,21 DUP(205),187,0DH,0AH DB 25 DUP(' '),186,' 1.INPUT A STRING ...',186,0DH,0AH DB 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,0AH DB 28 DUP(' '),'CHOICE(1,2,3):$' MESG DB 0DH,0AH,0DH,0AH,9,'PRESS ANY KEY TO EXIT ...$' CNT1 DW 0 ;前导空格长度
AL=2AL=3输出提示输入字符串以回车输出矩形框并保持框内无字输出提示输入字输出提示返回DOS R? Q? 开始 输出主菜单 输入字符(数字:1、2、3)AL=1Y
N N
Y Y
Y N Y N 延时几秒,直到判断出矩形框完全出现 7
CNT2 DW 0 ;左半字符串长度 CNT3 DW 0 ;中间空格长度 CNT4 DW 0 ;右半字符串长度 CNT5 DW 0;末尾空格长度 LEFT DW 0 STR DB 21 DB 0 BUF DB 0DH,20 DUP(0)
2. 矩形框程序 LINE: ;矩形框 MOV DI,(18*80+10)*2 MOV AL,201 ;左上角 MOV AH,3;矩形框颜色 STOSW MOV CX,60-2 MOV AL,'*' ;横框 REP STOSW MOV AL,187 ;右上角 STOSW ADD DI,20*2 MOV AL,'|' ;竖框 STOSW MOV LEFT,DI MOV CX,60-2 MOV AL,20H ;空格 REP STOSW
MOV AL,'|' ;竖框 STOSW ADD DI,20*2 MOV AL,200 ;左下角 STOSW MOV CX,60-2 MOV AL,'*' ;横框 REP STOSW MOV AL,188 ;右下角 STOSW RET
3. 字符串移动程序 LEA DX,MENU ;MENU文件的主菜单 将MENU的首地址给DX MOV AH,9 INT 21H 8
;显示字符串,DS:DX串地址,即MENU,画出方框图 INPUT: MOV AH,0 INT 16H ;从键盘读一字符 CMP AL,'1';召唤第一步,输入一个字符串 JNZ CP2 结果不为零跳转 及ZF=0 CALL SUB01 ;输入一个字符串 JMP INPUT CP2:CMP AL,'2';召唤第二步,字符串左右移动 JNZ CP3 CALL SUB02 ;字符串左右移动 JMP AGAIN ;返回到主菜单 CP3:CMP AL,'3' ;返回DOS JNZ INPUT LEA DX,MESG MOV AH,9 INT 21H MOV AH,1 INT 21H ;接受字符 MOV AH,4CH INT 21H ;结束
DELAY PROC PUSH CX PUSH DX;保护现场 MOV DX,1000;第二轮循环次数 D1:MOV CX,0FFFFH;第一轮循环次数 LOOP $ ;若CX不等于零,跳转至当前代码地址的指令($=该指令在该代码段的偏移地址) DEC DX JNZ D1 POP DX POP CX;现场还原 RET DELAY ENDP SUB01: MOV AX,0E0DH;0DH为本行开头,0EH输出 INT 10H MOV AL,0AH;0AH为下一行输出 INT 10H