微机实验指导_第1页
微机实验指导_第2页
微机实验指导_第3页
微机实验指导_第4页
微机实验指导_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 拆字、拼字程序一、实验目的1. 掌握屏蔽一个字节中的高四位或低四位内容的方法,熟悉移位指令的用法。2.掌握汇编语言设计和调试方法。二、实验条件与内容 实验条件:1. P以上的PC计算机,及操作系统Windows XP。2. Masm for Windows 集成实验环境 V6.0版本。实验内容:(1)把4000H单元的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 的高位清零,一般本程序用于把数据送显示缓冲区时用。(2)把4000H、4001H的低位分别送入4002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。三、程序框图拆字程序框图 拼字

2、程序框图四、实验过程与步骤在汇编语言环境下分别将拆字程序和拼字程序进行录入,并对程序进行编译。在DEBUG下对程序分别进行调试:(1)在程序运行前,检查4000H4002H中内容情况。(2)用连续或单步方式运行程序,之后检查4000H4002H内容变化情况。思考题1. MOV指令在应用时应注意哪些事项?2. 单字和双字在存储器中是怎样存放的?请举例进行说明。拆字程序清单:CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV BX,4000H ;把地址单元4000H给BX寄存器 MOV BX,5BH ;把所要拆字内容置为5BH MO

3、V AL,BX ;把4000H单元的内容给AL MOV AH,AL ;再4000H单元的内容给AH MOV CL,04 ;设置移位次数为4 SHR AH,CL ;AH的内容右移4位 ADD BX,01 (或INC BX) ;地址单元加1 MOV BX,AH ;把高位字送给4001H单元 AND AL,0FH ;屏蔽掉AL中的高四位 ADD BX,01 (或INC BX) ;地址单元加1 MOV BX,AL ;把低位字送给4002H单元 HLTCODES ENDS ;程序结束 END START此程序运行的结果是:(用D DS:4000)13C9:4000 5B 05 0B 00 00拼字程序清

4、单:CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX MOV BX,4000H ;把地址单元4000H给BX寄存器 MOV BX,0F6H ;把4000H单元所要拼的字置为F6H MOV BX+1,28H ;把4001H单元所要拼的字置为28H MOV AH,BX ;把4000H单元的内容给AH MOV AL,BX+1 ;把4001H单元的内容给AL AND AL,0FH ;屏蔽掉AL中的高四位 MOV CL,4 ;设置移位次数为4 SHL AL,CL ;AL的内容左移4位 AND AH,

5、0FH ;屏蔽掉AH中的高四位 OR AL,AH ;进行拼字 INC BX ;地址单元加1 MOV BX,AL ;将拼好的字保存在4002H单元 HLTCODES ENDS ;程序结束 END START此程序运行的结果是:(用D DS:4000)13C9:4000 F6 28 68 00 00思考题1. MOV指令在应用时应注意哪些事项?答:MOV指令的目的操作数不允许用立即数方式;MOV指令的目的操作数不允许用CS寄存器;除源操作数为立即数的情况外,两个操作数中必须有一个是寄存器;不允许MOV指令在两个存储单元之间直接传递数据;不允许在两个段寄存器之间直接传递信息;MOV指令使用操作数为段

6、寄存器、或地址单元不能为非法数;MOV指令不影响标志寄存器FLAG中的标志位。1. 单字和双字在存储器中是怎样存放的?请举例进行说明。答:在16位计算机中,单字是由2个字节构成的。当一个整数字保存在存储器中时, 这两个字节是按相反的顺序存储的。首先存储的是低有效字节,再把高有效字节存储在下一个地址。也就是说低位字节存储在低地址,高位字节存储在高地址。例如:3456H在存储器地址(0000、0001)中是这样存放的: 地址单元: 0000 34H(数值) 0001 56H双字是32位宽、4个字节,并且是由两个连续存储的相邻的字组成的,这是非常重要的数据格式。双字的存储与单字存储的方法相似,即低位

7、字存放在较低的存储器地址单元,高位字存放在下一个较高的存储器地址单元。例如H存放形式: 地址单元:0000 44H(数值) 0001 33H 0010 22H 0011 11H实验二数据区移动与分支程序一、实验目的1. 掌握RAM中的数据相关操作的方法与指令。2. 掌握分支结构编程方法及条件转移指令的用法。二、实验条件与内容实验条件:1. P以上的PC计算机,及操作系统Windows XP。2. Masm for Windows 集成实验环境 V6.0版本。实验内容: 1、把4100H源RAM区首址内的16字节数据传送到4200H目标RAM区 。2、假设有一组数据为5,-4,0,3,100,-

8、51。请编程判断:每个数大于0,等于0,还是小于0,并输出其判断结果。即: 1 当x0y= 0 当x=0 -1 当xDI跳转到L2处 ADD SI,CX ;SI与CX相加 ADD DI,CX ;DI与CX相加L1: DEC SI ;置源数据块末地址 DEC DI ;DI减1,置目的数据块末地址 MOV AL,SI ;把源数据块末地址的数据搬移到目的数据块区域 MOV DI,AL LOOP L1 ;循环16次结束 JMP HEND ;跳转到结束L2: MOV AL,SI ;把源数据块存储单元的数据传送到目的数据块 MOV DI,AL INC SI ;源数据块地址增1 INC DI ;目的数据块地

9、址增1 LOOP L2 ;数据搬移16次后结束HEND: HLTCODES ENDS ;程序结束 END START分支程序清单:DATAS SEGMENT X DB 25,-4,0,3,100,-51,17,62 ;建立数据表Y DB ;为存储结果建立缓冲区DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX ;置数据段存放地址 XOR AX,AX ;对AX清零 MOV CX,6 ;设定循环控制数 LEA SI,X ;置数据表偏移量首址 LEA DI,Y ;置存储数据偏移量首址BJ: MOV

10、 AL,SI ;将第一个数给AL CMP AL,0 ;AL内容与0进行比较 JGE DY ;比较结果=0则转移到DY处XY0: MOV BL,-1 ;小于0将-1给BL MOV DI,BL ;将-1存储到地址单元 JMP XH ;跳转到XH处DY: JE XD ;若等于0转移到XD处 MOV BL,1 MOV DI,BL ;将1给BL且存储到地址单元 JMP XH ;跳转到XH处XD: MOV BL,0 ;给BL赋值为0 MOV DI,BL ;将0存储到地址单元XH: INC SI ;数据表偏移地址增1 INC DI ;存放结果数据偏移地址增1 LOOP BJ ;判断CX是否为0,是则结束,否

11、则进行循环 HLTCODES ENDS ;程序结束 END START 实验三 循环程序设计一、实验目的1 掌握循环程序设计的方法(两重性循环结构)2 掌握正确分配与使用寄存器。二、实验内容与要求以GRADE为首地址的10个字的数组中保存有学生成绩。建立一个10个字的RNAK 数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:一个学生的名次等于成绩高于等于该学生的人数加1)。 寄存器分配情况说明如下: AX 存放当前被测学生的成绩 BX 存放当前被测学生的相对地址指针 CX 内循环计数值 DX 存放当前被测学生的名次计数值 SI 内循环测试时的地址指针 DI 外循环计数值三

12、、程序框图 见图6-1所示。四、实验报告及要求(一)预习准备部分1. 预习本次实验指导书中一、二、三部分内容。2. 按照实验内容要求写出程序清单。(二)实验过程部分1. 写出上机调试后正确的程序,说明程序的功能、结构。2. 调试说明,包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3. 写出源程序执行的结果。思考题在循环程序设计中,循环初始化时应注意哪些问题?按要求编程,计算学生排名,并输出排名结果:DATAS SEGMENTGRADE DB 95,84,72,58,76,90,100,68,80,88 ;建立学生成绩表RANK

13、 DB 10 DUP(?) ;建立学生成绩名次的缓冲区KG DB ,$ ;显示两个空格DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATAS MOV DS,AX ;分配数据段地址XOR AX,AX ;对AX清零MOV DI,0 ;对DI置0 ;置学生成绩表首址WXH: MOV AL,BX ;将第一个学生成绩给AX ;将学生名次先置为1 ;设置循内环计数值MOV SI,OFFSET GRADE ;取比较学生成绩的第一个数NXH: CMP AL,SI ;两个学生成绩相比较 JAE NEXT ;若高于等于

14、则跳转到NEXT处 ;否则学生名次增1NEXT: INC SI ;取下一个相比较的学生成绩 ;判断CX是否为0 ;将学生名次存入地址单元 INC BX ;取下一个学生的成绩 INC DI ;外循环控制次数增1 ;外循环次数是否到10 JB WXH ;不到10进行循环,到10后结束 ;设置显示名次缓冲区首址 MOV CX,10 ;设置显示控制循环次数为10XS: ;将显示的名次给AL CMP AL,0AH ;名次与0AH(10)比较 JWE DY ;高于等于转移到DY ADD AL,30H ;转换成ASIIC码进行输出显示 ;显示名次 JMP KGF ;跳转到显示空格处DY: ;大于等于A的进行

15、转换,并显示 MOV DL,AL MOV AH,02 INT 21HKGF: LEA DX,KG ;显示空格字符串 INT 21H LOOP XS HLTCODES ENDS ;程序结束 END START 实验四 244/273基本接口I/O实验一、实验目的 1. 学习微机接口控制系统中扩展简单I/O口的方法。 2. 学习数据输入/输出程序的编制方法。二、实验条件1. PC计算机及操作系统Windows XP/Win7。2. 微机实验系统(简称实验箱)以及连接线若干。三、实验电路四、实验内容(一)电路接线1. 将74LS244的8个数据输入端分别接到8个电平开关K0K7上,8个数据输出端分别

16、接到数据总线D0D7。2. 将74LS244的片选接线端CS244接到2A0-2A7H地址端。3. 将74LS273的8个D输入端分别接到数据总线D0D7,8个Q输出端接到LED显示电路L0L7。4. 将74LS2273的片选接线端CS273接到2A8-2AFH地址端。(二)实验内容一编程将74LS244芯片作为输入读取开关状态,并把74LS273作为输出在LED上显示开关状态。(三)实验内容二编程从键盘上输入一个字母或数字(不要用小键盘输入),将其ASCII码通过74LS273输出,并在8个LED上显示。五、实验要求 在实验过程中,记录实验时拨动开关的状态,并观察LED的显示状态。思考题1.

17、 74LS244、74LS273是什么芯片?2. 、信号线分别起什么作用?实验五 8255A并口实验方波、输入/输出一、实验目的1. 了解8255器件的原理,掌握其各口实现输入/输出的方法。2. 通过编程实现A、B、C口的方波输出,并编程实现A口输入、B口输出的方法。二、实验条件1. PC计算机及操作系统Windows XP/Win7。2. 微机实验系统(简称实验箱)以及连接线若干。二、实验内容与过程1、8255A的输入/输出实验。要求A口作为输入,B口作为输出。(1) 将开关K1K8端子分别接到8255A的A口的8个端子,将发光二极管L1L8分别接到B口的8个端子。 并将选片信号线连接起来。

18、 (2) 输入程序并调试运行。(3) 分别拨动钮子开关K1K8,观察LED的L1L8的亮与灭。该实验上机程序清单如下,请把空格处的程序进行完善。CODE SEGMENT ASSUME CS:CODEPA EQU ;A口控制字PB EQU ;B口控制字PCTL EQU ;8255控制口的控制字H20: ;对8255各口初始化P20: ;把A口作为输入端 ;取A口状态 ;把B口作为输出端 ;把A口的状态由B口进行输出 JMP P20 ;进行循环CODE ENDS END H20 2、8255A输出方波实验。完善程序,输入源文件,进行运行,在实验箱七段数码管显示“”状态下,用示波器观察A、B、C口的

19、输出波形。CODE SEGMENT ASSUME CS:CODEPA EQU ;8255的A口控制字PB EQU ;8255的B口控制字PC EQU ;8255的C口控制字PCTL EQU ;8255控制口的控制字START: ;8255初始化 P21: ;打开A口 ;输出电平 ;打开B口 ;输出电平 ;打开C口 ;输出电平 MOVCX,0800H ;赋延时循环数DELAY: NOP LOOP DELAY ;AL值取反 JMP P21 ;跳转到P11处循环CODE ENDS END H1用示波器观察A、B、C口的输出的波形,并在下面坐标上画出其波型。三、实验总结1、8255A与CPU相连的引脚

20、除数据线D7D0外,还有控制线引脚是什么信号?有什么作用?另外A1、A0信号起什么作用?2、8255A方式控制字是由数据信号D7D0来决定,其中哪些位用来选择A组的工作方式及端口A和端口C高4位的输入/输出性质?哪些位位用来选择B组的工作方式及端口B和端口C低4位的输入/输出性质?3、8255A方式0的主要特征是什么?实验六 8255并口实验控制交通灯一、实验目的 掌握8255并口传输数据的方法,以控制发光二极管的亮与灭,模拟实现十字路口交通灯的控制。二、实验内容用8255并口的PA、PB作为输出口,控制12个发光二极管(相当于东、西、南、北路口各3个红黄绿灯)的亮与灭,模拟交通灯的管理。三、

21、程序框图开 始读取8255控制字88H,使各端口均为输出口,且均工作于方式0使4个路口的红灯全亮延时一段时间点亮1、3路口绿灯延 时熄灭1、3路口绿灯1、3路口黄灯亮且闪烁8次四个红灯亮点亮2、4路口绿灯延 时 熄灭2、4路口绿灯2、4路口黄灯亮且闪烁8次4个红灯全亮 编程提示: (1)将8255的PA0、PA3、PA6、PB1对应发光二极管的红灯,PA1、PA4、PA7、PB2对应发光二极管的黄灯,PA2、PA7、PB0、PB3对应发光二极管的绿灯。 (2)设十字路口1、3为南北方向,2、4为东西方向,初始状态为4个路口的红灯全亮。之后,1、3路口绿灯亮,2、4路口红灯亮,即南北通车,东西禁

22、行。延时一段后,1、3路口绿灯熄灭,而1、3路口黄灯开始闪烁,闪烁8次后,1、3路口红灯亮,而同时2、4路口绿灯亮,即东西通车。延时一段时间后,2、4路口绿灯熄灭,而黄灯开始闪烁,闪烁8次后,再切换到1、3路口方向通车,重复上述过程。 (3)设定8255的三个端口工作方式均为0,并处于输出状态。 (4)各发光二极管共阳极,使其点亮应使8255各相应的端口位清0。四、实验电路五、实验步骤 1. 按实验电路连线,即8255各端口接线如下: PA0L12 PA1L11 PA2L10 PA3L9 PA4L8 PA5L7 PA6L6 PA7L5 PB0L4 PB1L3 PB2L2 PB3L1 把8255

23、的选片信号线连接起来。 2. 输入程序并运行。 六、实验报告及要求(一)预习准备部分1. 预习本次实验指导书的一五部分内容。2. 按照实验内容要求编写程序。(二)实验过程部分1. 对上机调试后的正确程序,说明语句功能、程序结构。2. 调试说明,包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3. 说明8255并口模拟控制交通灯的工作过程。思考题1. 系统分配给8255A的I/O地址是什么?其三种工作方式是什么?2. 8255A在方式0下的端口A、B、C的工作状态是什么?实验七 D/A转换输出波形实验一、实验目的1. 了解DAC0832器件的原理,掌握其各口实现输入/输出的方法。2. 通过编程实现A、B、C口的方波输出,并编程实现A口输入、B口输出的方法。二、实验条件1. PC计算机及操作系统Windows XP/Win7。2. 微机实验系统(简称实验箱)以及连接线若干。3. 示波器。三、实验内容与过程1、实验内容1编制程序,利用DAC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论