ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:148.56KB ,
资源ID:10989405      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10989405.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理实验报告.docx

1、微机原理实验报告实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:拆字、拼字程序一、实验预习内容1、8086/8088有14个16位寄存器,按其用途可分为8个 寄存器、2个 寄存器和4个 寄存器。2、通用寄存器分别是 。代码段寄存器是 ,数据段寄存器是 ,堆栈段寄存器是 。3、在数据寄存器中,被称为累加器的 用于算术运算外,还用于输入/输出等操作。被称为基址寄存器的 它可作为存储器指针来使用。被称为计数寄存器的 在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用 来指明移位的位数。而数据寄存器 在进行乘、除运算时,它可作为

2、默认的操作数参与运算,也可用于存放I/O的端口地址。 4、堆栈指针寄存器 与SS配合使用,可指向目前的堆栈位置;基址指针寄存器 可用作SS的一个相对基址位置;源变址寄存器 可用来存放相对于DS段之源变址指针;目的变址寄存器 可用来存放相对于 ES 段之目的变址指针。指令指针寄存器 用来存放代码段中的偏移地址。5、在8088指令的寻址方式中,下列各指令中属于立即寻址的是 ,属于寄存器寻址的是 ,属于直接寻址的是 ,属于寄存器间接寻址的是 ,属于基址寻址的是 ,属于基址加变址寻址的是 。A、MOV AX,2000H B、MOV AX,2000H C、MOV AX,CXD、MOV AX,DI E、M

3、OV AX,BXSI F、MOV AX,BP6、在DEBUG下,反汇编命令是 ,汇编命令是 ,显示显示内存单元内容的命令是 ,修改内存单元内容的命令 ,检查和修改寄存器内容的命令是 ,逐步追踪执行命令是 ,连续执行程序命令是 ,退出命令是 。二、实验内容与过程 1、设DS为当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令在存储器偏移地址300H304H单元中连续按顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么,并指出这条指令是什么寻址方式。程序清单如下:M

4、OV AX,0000HMOV BX,0300HMOV SI,0002HMOV DI,0302HMOV AX,BX AX的内容: ; MOV AX,0302H AX的内容: ; MOV AX,DI AX的内容: ; MOV AX,BX AX的内容: ; MOV AX,0001BX AX的内容: ; MOV AX,BXSI AX的内容: ; MOV AX,0002DI AX的内容: ; HLT (1)在汇编软件环境下,首先输入程序,并在建立的文件夹下进行保存;然后进行编译生成 ,发现问题进行编辑修改再进行编译;再进行链接生成 。 (2)用 E 命令加带数据段物理地址 ,将偏移地址300H304H单

5、元中连续按顺序装入 。(4)用 命令单步跟踪执行程序,查看 寄存器的内容,根据每条指令执行情况,记录其所存放的数据。2、把4000H单元的内容拆开,高位送4001H单元,低位送4002H单元。拆字程序清单如下,按要求在填空处完善注释。CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV BX,4000H ;把地址单元4000H给BX寄存器 MOV BX,5BH ; MOV AL,BX ;把4000H单元的内容给AL MOV AH,AL ;再把4000H单元的内容给AH MOV CL,04 ; SHR AH,CL ; ADD BX,

6、01 (或INC BX) ;地址单元加1 MOV BX,AH ; AND AL,0FH ;屏蔽掉AL中的高四位 ADD BX,01 (或INC BX) ;地址单元加1 MOV BX,AL ; HLTCODES ENDS ;程序结束 END START查看4000H起始的三个单元内容的命令为 ,从4000H起三个地址单元的保存的数据依次为: 。3、把2000H、2001H的单元的低4位拼成一个字,送入2002H单元(第一个字的低4位和第二个字的低4位拼成一个字)。完善程序,并用DEBUG进行调试。CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSST

7、ART: MOV AX,DATAS MOV DS,AX MOV BX,2000H ;把地址单元2000H给BX寄存器 ;把2000H单元所要拼的字置为F6H ;把2001H单元所要拼的字置为28H MOV AL,BX ;把2000H单元的内容给AL MOV AH,BX+1 ;把2001H单元的内容给AH ;屏蔽掉AL中的高四位 MOV CL,04H ;设置移位次数为4 ;AH的内容左移4位 ;进行拼字 ADD BX,02H ;地址单元到2002H ;将拼好的字保存在2002H单元 HLTCODES ENDS ;程序结束 END START使用 命令查看存放在2000H单元起三个地址单元中的数据

8、分别是: 。三、实验总结 1、汇编程序的调试过程有关问题:输入源程序代码并进行存盘;对文件进行 ,若发现错误可根据错误信息进行修改,直到无错为止;在DEBUG下,用相关命令进行查看、修改或执行汇编程序,常用的相关命令分别是 ; 在DEBUG下,程序运行的结果一般存放在相关 中,或者存放在数据段 偏移地址 单元中。在显示结果中所看到的 分别表示溢出、方向、中断、符号、零、辅助进位、奇偶、进位标志状态是复位状态。2、其它相关问题: 汇编程序保存的文件名(及文件夹)必须符合 命名要求,一般由26个英文字母和10个数字组成,文件名长度不准超过 个字符。输入程序代码指令其英文符号的 或者 输入都一样,而

9、指令间该有的 不能省略,其指令和标点符号必须是在 状态下输入方可有效。程序代码和程序数据一般存放在不同的 下,若存在同一段地址下,其偏移地址可不同,且偏移地址间要有一定的相隔空间。偏移地址从 开始,到最大 结束。 3、所有移位指令的目标操作数,只允许是 ,指令中的计数值可以是常数1,即移位1次,如果移位多于1次,则必须将移位数N事先装入 寄存器中,本指令最多可移位255位。一般来说,当目标操作数为无符号数时采用 指令;若目标操作数为有符号数时,则采用 指令。4、在逻辑运算指令中,仅 指令不影响标志位;其它指令 执行后,除AF状态不定外,总是使OF=CF=0,ZF、SF、PF则根据运算结果被置位

10、或复位。实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:数据区移动与分支程序一、实验预习内容 1、8086/8088计算机指令一般由 和 操作数组成(无操作数指令除外)。根据操作数存放位置的不同,可将操作数分为三种类型 。 2、存储器操作数存放在内存的数据区,数据区的物理地址由 共同构成。大部分操作数的 由数据段寄存器 的内容来确定。 3、数据传送指令是计算机中最基本、最重要、最常用的一种指令,主要用来实现 的字节或字的传送。在数据传送指令中,需要注意的是 必须保持一致。 4、传送指令MOV在使用时应注意: 和 不能作为目的操作数;立即数传送

11、到 时一定要与 一致;源操作数和目的操作数不能同时为 。 5、加法指令ADD和带进位加法指令ADC执行时会对标志位 受影响。 6、简单分支程序根据条件是否满足将程序分为 分支,按不同条件做出相应的处理。这种程序往往是用 的方法,在 中设置相应的标志位,然后再根据适当的 实现不同情况的分支转移。7、条件转移指令可分为三类,在下列指令中适用于无符号数的条件转移指令助记符中是 ;适用于有符号数的条件转移指令助记符是 ;适用于标志位的条件转移指令助记符是 。 JA、JB、JC、JE、JG、JL、JZ、JAE、JGE、JLE、JNE、JNBE8、在条件转移指令中,指令助词符JAE和 、JG和 、JLE和

12、 、JZ和 执行的结果是一样的。 二、实验内容与过程 1、把4100H源RAM区首址起的16字节数据传送到4200H目标RAM区。读懂程序,完善程序注释,用DEBUG调试并查看结果。CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV CX,010H ;置搬移数据循环次数 MOV SI,4100H ; MOV DI,4200H ; MOV BX,SI ;将源数据块首址给BX MOV DL,01HNUM: MOV BX,DL ;将16个数据存放在源数据块区 INC BX INC DL LOOP NUM MOV CX,010H ;置搬移

13、数据循环次数 CMP SI,DI ;SI与DI相比较 JA L2 ; ADD SI,CX ;SI与CX相加 ADD DI,CX ;DI与CX相加L1: DEC SI ; DEC DI ; MOV AL,SI ; MOV DI,AL LOOP L1 ;循环16次结束 JMP HEND ;跳转到结束L2: MOV AL,SI ;把源数据块存储单元的数据传送到目的数据块 MOV DI,AL INC SI ; INC DI ; LOOP L2 ;数据搬移16次后结束HEND: HLTCODES ENDS ;程序结束 END START 连续执行该程序的命令是 ,查看存放在4100H地址单元的数据命令是

14、 ,查看存放在4200H地址单元的数据命令是 ,检查4100H4110H、4200H4210H中存储的数据为 。2、假设有一组数据为25,-4,0,3,100,-51,17,62。请编程判断:每个是数大于0,等于0,还是小于0,并输出Y的值。即: 1 当x0y= 0 当x=0 -1 当x=0则转移到DY处XY0: MOV BL,-1 ;小于0将-1给BL MOV DI,BL ;将-1存储到地址单元 JMP XH ;跳转到XH处DY: ;若等于0转移到XD处 MOV BL,1 MOV DI,BL ;将1给BL且存储到地址单元 JMP XH ;跳转到XH处XD: MOV BL,0 ;给BL赋值为0

15、 MOV DI,BL ;将0存储到地址单元XH: ;数据表偏移地址增1 ;存放结果数据偏移地址增1 LOOP BJ ;判断CX是否为0,是则结束,否则进行循环 HLTCODES ENDS ;程序结束 END START 连续执行程序的命令是 ,查看存放在内存中的数据命令是 存放在数据段地址单元的结果是 三、实验总结 1、段定义伪指令用于将源程序划分为若干个段。这些逻辑段按照用途可分为 和附加段。需要说明的是,并不是所有程序都必须包含这四个逻辑段,可根据需要进行配置。每个 指令可定义一个逻辑段。段寄存器说明伪指令 向汇编程序指示当前各段所用的寄存器,并设定段寄存器与段的对应关系。 2、存储器由许

16、多存储单元组成,每一个存储单元可以存放一个8位二进制数,即 ,每一个存储单元都指定了一个惟一的编号,称之为 。存放程序代码的起始地址由 寄存器来指定,存放程序所用数据的起始地址由 寄存器来给定。程序在执行过程中的偏移地址是由 寄存器来给定。 3、DB伪操指令用来定义字节型变量,其中的每个操作数都占有 存储单元,每个操作数的值不超过 。DW伪操指令用来定义字型变量,其中的每个操作数都占有 ,字的低位字节存放在第一个字节地址单元中,字的高位字节存放在第二个字节地址单元中。DD伪操指令用来定义双字型变量,其中的每个操作数都占有 ,双字的最低位字节在第一个字节地址单元中,次低位字节在第二个字节地址单元

17、中,次高位字节在第三个字节地址单元中,高位字节在第四个字节地址单元中。 4、以CMP A,B示例说明比较指令功能用法如下:判断两个数操作数是否相等,可根据 标志位来判断,若 说明A=B;若 说明AB。 判断两个无符号操作数的大小,可根据 标志位来判断,若 说明AB;若 说明AB。 实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:循环程序设计一、实验预习内容 1、在设计循环程序中,一般结构由循环 部分、 部分、 部分和 部分。在循环开始前首先应建立 和其它循环参数的起始值等。控制循环是循环程序设计中最重要的一个环节,这部分用于控制重复执行的次数

18、,包括修改 和 ,为下一次循环做好准备,以及修改循环计数器,判断循环结束条件是否满足,若条件满足则退出循环,否则继续循环。最常见控制循环的两种方式是 和 。值得指出的是,循环程序的前后两部分只能执行一次,而循环主体部分不能出现转向建立循环参数起始值部分,否则会造成程序 ,或者得不到预期结果。2、设计多重循环程序时,可以从 循环到 循环一层一层的进行。需要注意的是,多重循环可以嵌套,但不能 。此外,转移指令可以从循环结构内向外转出,但不能从 循环直接跳进 循环。3、常用计数循环控制指令LOOP 目标号,首先得把循环计数值赋给 寄存器,当执行到LOOP指令时,先做 ,再进行判别,当 转移到目标号继

19、续循环,直到 退出循环。二、实验内容与过程以GRADE为首地址的10个字的数组中保存有学生成绩。建立一个10个字的RNAK数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:一个学生的名次等于成绩高于该学生的人数之和再加1)。寄存器分配情况说明如下:AX存放当前被测学生的成绩BX存放当前被测学生的相对地址指针CX内循环计数值DX存放当前被测学生的名次计数值SI内循环测试时的地址指针DI外循环计数值按要求编程,计算学生排名,并输出排名结果:DATAS SEGMENTGRADE DB 95,84,72,58,76,90,100,68,80,88 ;建立学生成绩表RANK DB 1

20、0 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 ;若高于等于则跳转到N

21、EXT处 ;否则学生名次增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的进行转换,并显

22、示 MOV DL,AL MOV AH,02 INT 21HKGF: LEA DX,KG ;显示空格字符串 INT 21H LOOP XS HLTCODES ENDS ;程序结束 END START 在本程序数据段中变量GRADE的偏移首址是 ,RANK的偏移首址是 ,KG 的偏移首址是 。 程序运行后RANK单元的内容为: 。三、实验总结1、本实验程序中循环初始化部分的语句有 、 、 。循环结束部分的语句有 。内循环控制方式是 ,而外循环控制方式是 。2、十六进制数0F的ASCII码分别是30H、31H、32H、33H、34H、35H、36H、37H、38H、39H、 。数09所对应的ASCI

23、I码与其数值之差(30-0、31-1、32-2、33-3、39-9)均是 ,而数AF对应的ASCII码与其数值之差( 41-A、42-B、43-C、44-D、45-E、46-F )均是 。3、标号通常由字母数字组成,但第一个字符必须是字母,最多允许使用 31 个字符。值得注意的是,编程员选用标号时,不能使用系统中已经定义过的符号名,如助记符、 、寄存器名等,否则将产生错误。本实验程序中所使用的标号有 等。4、谈一谈本次实验的心得体会(至少谈五点)。实验课程:微机原理及接口技术 姓名: 学号: 班级: 实验日期: 年 月 日 批阅老师: 实验名称:I/O扩展(244/273)实验一、实验预习内容

24、 1、本次实验是利用74LS244和74LS273的扩展电路来实现开关状态的输入和输出,用 做为输入信号,并用 来显示输出。74LS244为3态8位 ,一般用作总线驱动器。74LS273是8位数据/地址 ,它是一种带清除功能的8D触发器。2、74LS138是3/8线译码器,即用3个输入信号进行译码,得到 状态。 为译码信号输入端, 为译码输出端,低电平有效。3、74LS273的D0D7为8位数据输入端,接到数据总线上;Q0Q7为8位数据输出端,接到LED显示上,当开关拨到 时LED发亮。CLK为触发时钟输入端,由或门74LS32的两个输入端 来选通。当数据总线上的值撤销后,由于74LS273能

25、锁存信号,所以74LS273的输出端 ,直到有新的数据被锁存。 二、实验内容与过程 实验内容1、用244/273做I/O扩展实验。调试上机程序,并完善程序语句注释。CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3380H ;244/273扩展程序存放目标地址;PIO1 EQU 0FFE0H ; PIO2 EQU 0FFE4H ; P1: MOV DX,PIO1 ; IN AL,DX ;等待输入信号 MOV DX,PIO2 ; OUT DX,AL ;输出信号 JMP P1 ;循环等待CODE ENDS END P1 (1)74LS244的输入端P

26、I0PI7分别连接到逻辑电平开关单元的 开关上,74LS273的输出端PO0PO7分别连接到发光二极管显示单元的 上。 (2) 按电路图连接译码器74LS138的输入端A、B、C,其中A接到地址线上的 ,B连接到地址线上的 ,C连接到地址线上 。138控制输入端G接到地址线上对应的 端。 (3)74LS32为4-2输入或门电路,输入端1接到138的 上,2接到地址线区的IORD上,输出端3接到244芯片的 G 端口上;32门的输入端4接到138的 上,5接到地址线区的IOWR上,输出端6接到273芯片的CLK端口上。(4) 将244、273芯片旁的数据插座用 。 (5) 进入实验软件环境,输入

27、程序源文件,并进行检查。(6) 接通实验箱电源开关,进行通电。(7) 运行程序。(8) 拨动K1K8, 。 实验内容2:编制程序,利用273控制各种颜色LED的亮与灭。 拆掉244芯片的接线,保留273及138译码器的接线。参照实验内容1编程实现L1L8八路灯的同时亮与灭;编程实现L1L8中所有黄灯、绿灯、红灯,按照黄灯亮(其它灯来)、绿灯亮(其它灯灭)、红灯亮(其它灯灭)的顺序依次循环。 L1L8路灯同时亮、同时灭的程序如下:CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3380H ;程序存放目标地址;PIO2 EQU 0FFE4H ;273

28、芯片字位控制字 P1: ;给AL赋值,使所有灯亮 ;选通273芯片接口 ;输出信号 ;调延时子程序 ;给AL赋值,使所有灯灭 ;选通273芯片接口 ;输出信号 ;调延时子程序JMP P1 ;循环DELAY: ;延时子程序YS: NOP LOOP YS RET CODE ENDSEND P1 L1L8中所有黄灯、绿灯、红灯,按照黄灯亮(其它灯灭)、绿灯亮(其它灯灭)、红灯亮(其它灯灭)的顺序依次循环程序如下:CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3380H ;程序存放目标地址;PIO2 EQU 0FFE4H ;273芯片字位控制字 P1: ;给AL赋值,使所有黄灯亮 ;选通273芯片接口 ;输出信号 ;调延时子程序 ;给AL赋值,使所有绿灯亮 ;选通273芯片接口 ;输出信号

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1