微机原理与接口技术实验指导_3_分支程序设计实验
- 格式:doc
- 大小:238.00 KB
- 文档页数:4
《微机原理及接口技术》实验指导书福建工程学院计算机与信息科学系计算机系统结构教研室实验一 汇编语言程序上机过程一、实验目的1.掌握EDIT 、MASM 、LINK 等软件工具的使用。
2.掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、实验内容1.将DISP 单元中存放的一压缩BCD 码内容显示出来。
2.将BUF 单元开始的两个BCD 码相加存放到SUM 单元中,并显示结果。
3.将字节变量DISP 的内容(00H-FFH 任意值)显示出来。
三、实验准备与报告 1.了解实验操作方法,准备好实验程序和数据。
2.记录汇编、连接过程产生的错误及解决办法,设置相关的出错情况,查看汇编结果; 3.记录运行结果,更改数据再运行,记录结果。
4.实验报告主要内容:实验名称、实验目的、实验内容、<实验电路>、程序、实验结果、调试过程记录、总结。
(其它实验也按此要求书写实验报告)实验二 DEBUG 使用实验一、实验目的1.掌握DEBUG 常用命令的使用。
2.进一步了解80X86的存储器和寄存器结构。
3.进一步理解有关指令的功能与应用。
二、实验内容1.进入与退出DEBUG 。
2.用R 命令检查和修改寄存器内容并记录。
3.用D 命令显示内存单元内容并记录。
4.用E 命令修改内存单元内容并记录。
5.A 、U 、T 、P 、G 、N 、W 、L 命令使用。
程序:MOV SI ,0 MOV AX ,[SI] INC SI INC SIADD AX ,[SI] MOV BX ,AX INT 20H(1)使用A 命令输入以上程序;(2)使用U 命令查看输入的程序;(3)使用N 、W 命令将程序存盘;用N 、L 命令重新装载,用U 命令查看; (4)使用DEBUG 的D 、E 命令检查设置(DS ):0000H 起始的四个单元内容; (5)使用R 命令检查、设置有关寄存器的值;(6)分别使用T 、G 命令运行程序,注意观察有关寄存器和单元的变化。
微机原理分支程序设计实验微机原理是计算机科学与技术专业的核心课程之一、在这门课程中,学生需要学习计算机的基本原理和体系结构,并通过实验来巩固所学的知识。
本文将介绍一个关于分支程序设计的微机原理实验。
实验背景:分支程序是计算机中的一种非线性控制结构,它根据条件的不同选择不同的执行路径。
分支程序设计是计算机编程中非常重要的一部分,也是实际应用中经常会遇到的情况之一、通过这个实验,学生将学会如何使用分支结构来解决实际问题。
实验目的:1.了解分支程序设计的基本概念和原理。
2.掌握使用条件语句和循环语句来实现分支程序。
3.通过实际案例分析和编程实践,巩固所学的知识。
实验内容:本实验以学生成绩管理系统为例,通过判断学生的成绩等级来计算总评成绩,并输出等级信息。
分支程序设计的思路如下:1.输入学生的成绩。
2.根据成绩的范围判断学生的等级。
3.根据等级计算总评成绩。
4.根据总评成绩输出相应的等级信息。
实验步骤:1.在开发环境中创建一个新的项目,并新建一个名为“GradeManage”的源文件。
2.在源文件中定义一个成绩变量和一个等级变量,并使用输入函数从键盘读取学生的成绩。
3.使用条件语句根据成绩的范围判断学生的等级,并将等级赋值给等级变量。
4.使用条件语句根据等级计算总评成绩,并将结果赋值给一个总评成绩变量。
5.使用条件语句根据总评成绩输出相应的等级信息。
6.在屏幕上显示输出结果。
7.编译并运行程序,进行测试。
实验总结:通过本实验,我学会了如何设计并实现一个简单的分支程序。
在实验过程中,我深入了解了分支结构的原理和使用方法,并通过编程实践巩固了所学的知识。
分支程序设计在实际应用中非常广泛,掌握这一技能对于计算机科学与技术专业的学生来说非常重要。
在今后的学习和工作中,我将继续探索和学习更多关于分支程序设计和其他相关知识,以提高自己的编程能力。
基础实验一、汇编过程与DEBUG调试实验一、实验目的:1.熟悉DEBUG常用命令。
2.熟悉汇编指令及其寻址方式和对标志位的影响。
3.学会用汇编语言设计、编写、调试和运行程序的方法。
二、实验内容:1.使用文本编辑程序建立名为B.ASM的源程序文件,并输入下面程序内容,然后存盘。
DA TA SEGMENTX DD 99AABBCCHY DD 55667788HZ DD ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX, DATAMOV DS, AXMOV DI, OFFSET ZMOV AX, WORD PTR XADD AX, WORD PTR YMOV [DI], AXMOV AX, WORD PTR X[2]ADC AX, WORD PTR Y[2]MOV [DI+2], AXEXIT: MOV AX, 4C00HINT 21HCODE ENDSEND START问:1)程序的功能是什么?2)数据标号X、Y、Z的地址(偏移量)分别是多少?3)程序的各条语句中源操作数和目的操作数分别是什么寻址方式?4)标号EXIT后面的2条指令有什么功能?5)在在标号地址EXIT处设置断点,在程序暂停时从相应内存单元检查Z的内容,看结果是否正确。
2. 编写程序,用8086指令实现双字操作数X的内容循环左移N位。
编程提示:1)如果要对双精度数(双字)DX:AX循环左移1位,可用如下指令段:SAL AX, 1 ;将AX内容算术左移1位,最低位补0,最高位移至进位位CF RCL DX, 1 ;将DX内容带进位循环左移1位,原CF内容移至DX最低位,;DX最高位移至CFADC AX, 0 ;CF内容即原DX最高位加至AX最低位2)如果要对双精度数(双字)DX:AX循环左移N位,则将上述程序段循环执行N次即可。
3. 编写程序,在屏幕上显示一段英文信息,如“Hello Kitty!”或者你喜欢的其他一段文字。
2.3 分支程序设计实验2.3.1 实验目的1、掌握分支程序的设计方法。
2、掌握宏定义及宏调用的基本方法。
3、了解小写和大写字母的ASCII码表示及其转换方法。
了解数字及其它字符在的ASCII码表示方法。
4、进一步掌握调试工具的使用方法2.3.2 实验预习要求1、复习比较指令、条件转移指令的用法。
2、复习宏定义及宏调用的基本方法。
3、根据“2.3.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。
4、程序框架中显示提示信息的指令序列用宏调用实现。
5、从“2.3.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.3.3 实验内容从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。
若输入为小写字母,显示“Y ou Input a Lowercase Letter!”;若输入为大写字母,显示“Y ou Input a Uppercase Letter!”;若输入为数字,显示“Y ou Input a Digit!”;若输入为其它字符,显示“Y ou Input Other Letter!”。
1、编程指导数字0~9的ASCII码为30H~39H;大写字母的ASCII码为41H~5AH,小写字母的ASCII码为61H~7AH。
本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。
字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。
2、流程图及程序框图(1)流程图(2)程序框架DA TA SEGMENTINFOR1 DB 0AH,0DH,"PLEASE PRESS ANY KEY TO INPUT A LETTER: $"INFOR2 DB 0AH,0DH,"YOU INPUT A LOWERCASE LETTER! $"INFOR3 DB 0AH,0DH,"YOU INPUT A UPPERCASE LETTER! $"INFOR4 DB 0AH,0DH,"YOU INPUT A DIGIT! $"INFOR5 DB 0AH,0DH,"YOU INPUT OTHER LETTER! $"DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DA TAMOV DS,AXMOV DX, OFFSET INFOR1MOV AH,09HINT 21HMOV AH,01HINT 21HMOV DX, OFFSET INFOR1MOV AH,09HCMP AL,'0'JB OTHERCMP AL,'9'JBE DIGITCMP AL,'A'JB OTHERCMP AL,'Z'JBE UPPERCMP AL,'a'JB OTHERCMP AL,'z'JBE LOWERJMP PENDLOWER:MOV DX,OFFSET INFOR2MOV AH,09HINT 21HJMP PENDUPPER:MOV DX,OFFSET INFOR3MOV AH,09HINT 21HJMP PENDDIGIT:MOV DX,OFFSET INFOR4MOV DX,OFFSET INFOR4MOV AH,09HINT 21HJMP PENDOTHER:MOV DX,OFFSET INFOR5MOV AH,09HINT 21HPEND:MOV AH,4CHINT 21HCODE ENDSEND START2.3.4 实验习题1、在屏幕上显示信息“Are you really want to exit?”,然后从键盘输入一个字符,若输入“Y”或“y”,显示“Thank you for your using!”后程序结束;若输入“N”或“n”,显示“Let’s continue!”后程序结束;若输入其它字符,显示“Y ou press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。
《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。
可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。
为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。
在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。
该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。
经常使用的功能均备有热键,这样可以提高程序的调试效率。
一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。
旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。
系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。
微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。
二、实验器材•1个微处理器开发板;•1个串行通信模块;•相应的连接线。
三、实验内容在该实验中,你将学习如何使用微处理器进行数据传输,具体实验步骤如下:1.将开发板和串行通信模块连接起来;2.将数据发送器连接到串行通信模块的发送端口,将数据接收器连接到串行通信模块的接收端口;3.通过开发板上的开关设置要发送的数据;4.通过串行通信模块将数据发送到计算机;5.在计算机上使用相应的软件接收数据,并验证接收到的数据是否正确。
四、实验步骤1.将开发板和串行通信模块连接起来,确保连接正确并稳定;2.将数据发送器插入串行通信模块的发送端口,将数据接收器插入串行通信模块的接收端口;3.在开发板上的开关上设置要发送的数据;4.打开计算机上的串行通信软件,配置正确的串口号和波特率;5.点击软件的接收按钮,准备接收数据;6.在开发板上的开关上切换到发送模式,并观察串行通信模块的指示灯是否正常闪烁;7.在串行通信软件上观察接收到的数据是否与设置的数据一致;8.如果数据传输正常,则实验完成。
五、实验注意事项1.连接线务必稳固连接,确保数据传输正常;2.阅读并理解实验器材的使用说明书;3.注意保持实验环境的整洁,避免影响实验结果;4.在进行数据传输时,确保计算机已正确安装了相应的驱动程序。
六、实验总结通过这次实验,我们初步了解了微处理器的基本概念和工作原理,学习了数据传输的基本知识,并掌握了使用微处理器进行数据传输的方法。
我们在实验中成功地连接了开发板和串行通信模块,并成功地进行了数据传输。
通过实验,我们发现数据传输过程中需要注意连接线的稳固连接,以及计算机是否安装了相应的驱动程序。
实验的结果验证了我们的操作方法的正确性,同时也为后续实验奠定了基础。
注意:本指导书旨在引导实验过程,实验过程中如有任何危险情况,请立即停止实验并寻求实验室管理员的帮助。
《微机原理及接口技术B》实验指导书※实验环境实验设备——唐都TD-PITE 80X86 微机原理及接口技术微机实验平台。
每套设备包括实验箱一台、配备安装有Wmd86联机操作软件的PC微机一台、连接线及电源线。
图1 实验平台连接示意图图2 唐都TD-PITE实验箱图3 唐都TD-PITE实验箱布局图操作步骤:1、打开电脑。
2、插好实验平台电源线。
3、通过串口连接线连接实验箱与微机。
4、打开Wmd86联机操作软件。
5、检查端口是否选择好。
6、进行实验接线。
7、录入汇编程序。
8、编译、链接、下载,观察结果。
图4 Wmd86联机操作软件实验一定时器的使用1.实验目的和意义●熟悉接口试验箱的使用环境。
●体会接口电路通过外部总线与处理器连接原理。
●掌握可编程芯片8253的编程方法。
2.实验设备PC 机一台,TD-PITE 实验装置一套。
3.实验内容1、编写程序,将8254 的计数器0 和计数器1 都设为方式3,用信号源1MHz 作为CLK0时钟,OUT0 为波形输出1ms 方波,再通过CLK1 输入,OUT1 输出1s 方波。
2、编写程序,将8254 的计数器0 设为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动 5 次后产生中断请求,在Wmd86程序运行结果栏上显示字符M 。
改变计数值,验证8254 的计数功能。
4.背景知识〔1〕8254的功能➢8253具有三个独立的16位计数器〔0#~2#通道〕;➢每个通道有6种工作方式;➢可以进行二进制或十进制计数,计数方式为减1计数。
〔最高计数频率2.6MHZ〕〔2〕8254 的内部结构和外部引脚图1.1 8254内部结构图1.2 8254外部引脚〔3〕8254 的工作方式●方式0:计数到0 结束输出正跃变信号方式。
●方式1:硬件可重触发单稳方式。
●方式2:频率发生器方式。
●方式3:方波发生器。
●方式4:软件触发选通方式。
实验三 分支程序设计一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言分支程序基本指令的使用方法;3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。
二、软硬件环境1.硬件环境:微机CPU 486以上,500MB 以上硬盘,32M 以上内存; 2.软件环境:装有MASM 5.0、DEBUG 、LINK 和EDIT 等应用程序。
三、实验涉及的主要知识单元在实际应用中,经常根据一些条件来选择一条分支执行。
汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号和相减而导致的结果来进行。
下面就有符号数转移指令来了解在汇编语言程序设计方法。
四、实验内容与步骤1.实验内容(1)编写计算下面函数值的程序:⎪⎩⎪⎨⎧<-=>=0,10,00,1x x x y设输入数据为X 、输出数据Y ,且皆为字节变量,使用Debug 查看X 、Y 两个变量的数据(2)以ARRAY 为首地址的内存单元中,存放5个8位的不带符号数,找出5个数中的最大数,并将结果存入RESULT 字节单元中。
2.实验步骤 a.实验流程图(1)计算函数值的流程图b.编写程序(1)计算函数值的实验代码 DATA SEGMENT X DB 12 Y DB ?DATA ENDS STACK SEGMENT STACK'STACK' DB 100H DUP(?)STACK ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AL,XXCMP AL,0 ;把AX 与0比较 JGE BIGPR ;0≥AL 转入BIGPR MOV Y,0FFFFH ;0<AL 则1-=Y JMP EXITBIGPR: JE EQUPR ;0=AL 转入EQUPR MOV Y,1 ;0>AL 则1=Y JMP EXITEQUPR: MOV Y,0 ;0=AL 则0=Y EXIT: MOV AL,Y RET CODE ENDSEND START(2)查找最大值的实验代码 DATA SEGMENTARRAY DB 2,1,4,5,3 RESULT DB ? DATA ENDSSTACK SEGMENT STACK'STACK' DB 100H DUP(?) STACK ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX LEA BX,ARRAYMOV AL,[BX] ;ARRAY 第一个数存入BX MOV CX,5 ;置循环次数 LOP: INC BX ;指针变量增1CMP AL,[BX] ;比较AL 中数与[BX]的大小JAE L1;][BX AL ≥转入L1MOV AL,[BX];][BX AL <则][BX AX ←L1: LOOP LOP ;执行循环LOP 程序MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDSEND STARTc.对程序进行debug 调试,观察中间结果 (1)计算函数值的调试 1.反汇编内容①MOV AL,XX 反汇编后变成MOV AL,[0000],即XX 为数据段第一个存储单元的内容,数据段的起始偏移地址为0000。
2.3 分支程序设计实验
2.3.1 实验目的
1、掌握分支程序的设计方法。
2、掌握宏定义及宏调用的基本方法。
3、了解小写和大写字母的ASCII码表示及其转换方法。
了解数字及其它字符在的ASCII码表示方法。
4、进一步掌握调试工具的使用方法
2.3.2 实验预习要求
1、复习比较指令、条件转移指令的用法。
2、复习宏定义及宏调用的基本方法。
3、根据“2.3.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。
4、程序框架中显示提示信息的指令序列用宏调用实现。
5、从“2.3.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.3.3 实验内容
从键盘输入一字符,判断该字符是小写字母、大写字母、数字或其它字符。
若输入为小写字母,显示“Y ou Input a Lowercase Letter!”;若输入为大写字母,显示“Y ou Input a Uppercase Letter!”;若输入为数字,显示“Y ou Input a Digit!”;若输入为其它字符,显示“Y ou Input Other Letter!”。
1、编程指导
数字0~9的ASCII码为30H~39H;大写字母的ASCII码为41H~5AH,小写字母的ASCII码为61H~7AH。
本题目将字符分为小写字母、大写字母、数字及其它字符,根据键入字符的ASCII码值判断其所属类型,并显示相应的信息。
字符串显示使用功能号为09H的DOS功能调用,接收键盘输入的单个字符使用功能号为01H的DOS功能调用。
2、流程图及程序框图
(1)流程图
(2)程序框架
DA TA SEGMENT
INFOR1 DB 0AH,0DH,"PLEASE PRESS ANY KEY TO INPUT A LETTER: $"
INFOR2 DB 0AH,0DH,"YOU INPUT A LOWERCASE LETTER! $"
INFOR3 DB 0AH,0DH,"YOU INPUT A UPPERCASE LETTER! $"
INFOR4 DB 0AH,0DH,"YOU INPUT A DIGIT! $"
INFOR5 DB 0AH,0DH,"YOU INPUT OTHER LETTER! $"
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA
START:MOV AX,DA TA
MOV DS,AX
MOV DX, OFFSET INFOR1
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
MOV DX, OFFSET INFOR1
MOV AH,09H
CMP AL,'0'
JB OTHER
CMP AL,'9'
JBE DIGIT
CMP AL,'A'
JB OTHER
CMP AL,'Z'
JBE UPPER
CMP AL,'a'
JB OTHER
CMP AL,'z'
JBE LOWER
JMP PEND
LOWER:
MOV DX,OFFSET INFOR2
MOV AH,09H
INT 21H
JMP PEND
UPPER:
MOV DX,OFFSET INFOR3
MOV AH,09H
INT 21H
JMP PEND
DIGIT:MOV DX,OFFSET INFOR4
MOV DX,OFFSET INFOR4
MOV AH,09H
INT 21H
JMP PEND
OTHER:
MOV DX,OFFSET INFOR5
MOV AH,09H
INT 21H
PEND:MOV AH,4CH
INT 21H
CODE ENDS
END START
2.3.4 实验习题
1、在屏幕上显示信息“Are you really want to exit?”,然后从键盘输入一个字符,若输入“Y”或“y”,
显示“Thank you for your using!”后程序结束;若输入“N”或“n”,显示“Let’s continue!”后程序结束;若输入其它字符,显示“Y ou press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。
2、在屏幕上显示如下信息:
1------------------------Panda
2------------------------Cat
3------------------------Rabbit
4------------------------Pig
5------------------------EXIT
(Please choose 1,2,3,4or 5)-----
若输入1,显示“I like panda”后程序结束;若输入2,显示“I like cat”后程序结束;若输入3,显示“I like rabbit”后程序结束;若输入4,显示“I don’t like pig”后程序结束;若输入5,程序直接结束;若输入其它字符,显示“Y ou press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。
2.3.5 实验报告要求
1、补全“2.3.3 实验内容”中源程序框架内未写出的程序代码,并说明你在调试该程序过程中遇到了哪
些问题,是如何处理的。
2、从“2.3.4 实验习题”中任选一道题目,画出流程图,编写源程序,并说明在调试过程中遇到了哪些
问题,是如何处理的。
3、写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。
4、题目:
在屏幕上显示信息“Are you really want to exit?”,然后从键盘输入一个字符,若输入“Y”或“y”,显示“Thank you for your using!”后程序结束;若输入“N”或“n”,显示“Let’s continue!”后程序结束;若输入其它字符,显示“Y ou press an error key!”后程序结束(要求尽量使用宏指令以便使源程序更加简洁)。
程序流程图:
程序代码:。