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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理实验报告.docx

1、微机原理实验报告 微机原理实验报告 院别:物理与电子工程学院 专业:电子信息工程1011班 姓名:刘小云学号:2010128134实验一 两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。三、程序框图 四、实验所用程序DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2

2、DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADD

3、A MOV AX,4C00H INT 21HADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05HAD1: SUB BYTE PTR SI,30HSUB BYTE PTR DI,30HDEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,SI MOV BL,DI ADC AL,BL AAA MOV SI,AL DEC SI DEC DI LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05HAD3: ADD BYTE PTR SI,30H

4、 ADD BYTE PTR DI,30H DEC SI DEC DI DEC BX JNZ AD3 RETADDA ENDPCODE ENDSEND START五、实验程序分析及预计结果数据定义段省略分析MOV SI,OFFSET DATA1END ;将DATA1的偏移地址给SI,SI中存放的是0004MOV DI,OFFSET DATA2END ;将DATA2的偏移地址给DI,DI中存放的是0009CALL ADDA;调用子程序ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SI MOV BP,DIMOV BX,05HAD1: SUB BYTE PTR

5、 SI,30H;将SI中的数值变为十进制数SUB BYTE PTR DI,30H;将DI中的数值变为十进制数 DEC SI;将SI中的地址前移一位改变下一个数值 DEC DI;将DI中的地址前移一位改变下一个数值 DEC BX;定义循环的次数 JNZ AD1;在BX中的数值不等于0的情况下循环执行AD1 MOV SI,DX;重新初始化SI MOV DI,BP;重新初始化DI MOV CX,05H CLC ;将进位标志位清零AD2: MOV AL,SI MOV BL,DI ADC AL,BL;将AL,BL中的数据用带进位的加法相加,保存到AL中 AAA MOV SI,AL DEC SI DEC

6、DI LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05HAD3: ADD BYTE PTR SI,30H;将十进制数转化为十六进制,并存到SI中 ADD BYTE PTR DI,30H;将十进制数转化为十六进制,并存到DI中 DEC SI DEC DI DEC BX JNZ AD31、在数据段,定义了一个data1,分配的地址是0004,data1end里面的内容是04h,且不占内存,定义的data2,分配的地址是0509,类似的,data2end里面的内容是09h 2、在循环AD1过程中,data1里面的内容从开始的33h,39h,31h,37h,34h变为3,9

7、,1,7,4;data2里面的内容也从开始的34h,35h,30h,38h,32h变为4,5,0,8,2。循环AD2就是实现数据的相加,不过此处还用到了ADC,也就是带进位的加法运算,所以此前就将CF清零了。循环后data1里面的内容是8,4,2,5,6。循环AD3后,data1里面的内容为38h,34h,32h,35h,36h;data2里面的内容为34h,35h,30h,38h,32h.循环结束后,返回到主程序,程序运行到INT 21h结束。也就是说实验最后的结果就是执行完循环AD3后,data1和data2中的内容。结果保存在内存中,地址为00h09h(ds:0000 38 34 32

8、35 36 34 35 30 38 32)六、实验结果如下: 七、实验总结第一次做微机原理的实验,开始看了老师发给我们的实验内容和操作细节但是还是有很多的东西不是很清楚,感觉是模拟两可的。在老师的讲解下,知道首先要将masm这个文件夹放在D盘里面,然后再在masm这个文件夹里面建一个文本文档,如xiangj.asm,然后再运行。先masm.exe xiangj.asm 。若程序报错,则要在记事本里面修改,直至编译没有错误为止,这时候会自动生成一个xiangj.obj文件。然后链接,link.exe xiangj.obj,执行之后敲 xiangj.exe 就可以运行程序了。这是我觉得第一做微机原

9、理的实验学习到最能让我永远记得的东西。至于实验的程序,刚开始根本就看不懂,由于里面涉及的很多知识都是我们还没有学到的,这就给我们看程序以及程序的功能的阅读带来了很大的阻碍。也直到现在,我才看懂这个程序。我觉得做实验最重要的是细心和耐心,还有就是要预习。那样才能够提前知道可能会出现什么样的状况,自己能有有余地去解决这个问题。即使自己解决不了的能够在实验室的时候去问老师,在老师的讲解下能明白的更彻底些。实验二 排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。二、实验内容 将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。第一个数字表示数据的个数(不是要比较的数值!)。三、程序

10、流程图图 3-2四、实验所用程序DATA SEGMENTADDR DW 8,234,35,67,876,54,39,765,237DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV SP,TOP MOV CX,WORD PTR ADDR0 DEC CXLOOP1: MOV DI,CX MOV BX,2LOO

11、P2: MOV AX,WORD PTR ADDRBX CMP AX,WORD PTR ADDRBX+2 JGE CCC XCHG AX,WORD PTR ADDRBX+2 MOV WORD PTR ADDRBX,AXCCC: ADD BX,2 LOOP LOOP2 MOV CX,DI LOOP LOOP1 EXIT: MOV AX,4C00H INT 21HCODE ENDSEND START五、实验程序分析及预计结果DATA SEGMENTADDR DW 8,234,35,67,876,54,39,765,237;定义9个字,注意:数字8是要排序的数据的个数DATA ENDSSTACK SE

12、GMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS, AX MOV ES, AX MOV AX, ACK MOV SS , X MOV SP, TOP MOV CX,WORD PTR ADDR0;将0008H赋给CX DEC CX;将CX中的数据减1,用于控制循环次数LOOP1: MOV DI, CX MOV BX, 2LOOP2: MOV AX,WORD PTR ADDRBX;将BX中的数据00EA(234)给AX

13、 CMP AX,WORD PTR ADDRBX+2;将下一个数据与00EA相比较 JGE CCC;比较之后AX中的数大于或等于BX+2中的数则跳转到执行CCC XCHG AX,WORD PTR ADDRBX+2;如果AX中的数小于BX+2中的数则交换两者的位置 MOV WORD PTR ADDRBX,AXCCC: ADD BX,2 LOOP LOOP2 MOV CX,DI LOOP LOOP1 EXIT: MOV AX,4C00H;跳出程序 INT 21HCODE ENDSEND START预计结果:经过分析程序的最后的排序结果是036C 02FD 00ED 00EA 0043 0036 00

14、27 0023程序设计思路:冒泡排序法六、实验结果如下七、实验中存在的问题及分析1、看不懂程序还是主要的问题,开始看的时候不知道定义中的第一个数据是要排序的数据的个数2、这个程序循环的次数比较多,没耐心去分析这个程序的功能。3、有很多指令的功能不清楚,给分析程序带来了很大的困难。实验三 自编程序上机调试一、实验目的掌握用汇编语言编写排序程序的思路和方法。二、实验内容 选作业题中题目上机调试。用汇编实现多位十六进制数相加 DATA SEGMENT ; 高位在前,个位最后 x db 0,45h,21h,0ADh,0CBh,54h,59h,44h,55H ;4521ADCB54594455H y d

15、b 0,45h,21h,0BAh,0DCh,78h,59h,44h,55H ;4521BADC78594455H z db 9 dup (0); 累加和存放区 DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA START: mov ax,DATA mov ds,ax mov si,offset y dec si ; SI 指向x的个位 mov di,offset z add di,8 ; 指向z的个位 clc mov cx,9next: mov al,si ; 逐位相加 adc al,si+9 mov di,al ; 保存一位和 dec si de

16、c di loop next mov ah,7 ;暂停 int 21h mov ah,4ch ;返回DOS int 21h CODE ENDS END START ;经与计算器验证,运行结果准确。4521ADCB54594455H+4521BADC78594455H=8A4368A7CCB288AAhdebug sadd.exe-. .-d013DE:0000 00 45 21 AD CB 54 59 44-55 00 45 21 BA DC 78 5913DE:0010 44 55 00 8A 43 68 A7-CC B2 88 AA 00 00 00 00 00实验四 8255并行I/O口

17、实验一、实验要求利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输入,PB口作输出。二、实验目的1、了解8255芯片结构及编程方法。2、了解8255输入/输出实验方法。三、预备知识8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。这24根端口线全部为双向三态。三个端口可分二组来使用,可分别工作于三种不同的工作方式。四、实验原理图及连线1、本实验主要用到的模块:8255模块、开关量输出模块、01指示模块、实验译码单元

18、等;2、PA0-PA7分别接开关量输出模块S0-S7对应的插座;3、PB0-PB7分别接01指示模块DO71-DO78对应的插座;4、8255A的片选/CS接地址译码单元的2A0-2A7;5、数据线XD0XD7接系统数据线区的任一插座。图 3-3五、实验内容将实验的线路连接好后,编程,将8255的A口作为输入,输入信号由8个逻辑电平开关提供,B口作为输出,其内容由发光二极管来显示六、程序框图见图3-4。图 3-4七、实验步骤1、参照图中的内容连好线;2、运行上位机软件,装载并运行相应程序即可(联机请参考程序8255.asm)。注意:同学们自己编写程序时,8255的/CS连线可以接地址译码单元的

19、其他信号,其它连线相同。如果用的端口与本实验不一样,也可以改变IO口的连线。八、仪器配置ZY15MicInt12BB微机原理及接口实验箱 一台。九、实验现象当读到某个开关处于高电平时,对应的发光二极管就会亮。十、实验有关的程序L8255_CMD EQU 2A3HL8255_PA EQU 2A0HL8255_PB EQU 2A1HL8255_PC EQU 2A2HCODE SEGMENT ASSUME CS:CODE,DS:CODEBEGIN: MOV CX,0FFHAA: LOOP AA MOV DX,L8255_CMD MOV AL,9CH ;10011000 OUT DX,AL NOP N

20、OP NOP NOP NOPBB: MOV DX,L8255_PA IN AL,DX XOR AL,0FFH MOV DX,L8255_PB OUT DX,AL JMP BBCODE ENDS END BEGIN十一、程序的分析 此程序比较简单,经分析知道,当程序执行到JMP BB时会开始循环,又由于该指令是无条件跳转指令,且没有控制指令,循环 进入死循环,在debug里面调试不出来。十二、实验总结第一次接触微机原理试验箱,第一次根据原理图连线,连线相对于其他科目的连线是要简单很多的。按照原理图连接好线之后,按操作步骤进行操作后结果出来了,虽然不知道原因。在电脑和实验箱子连接的时候出了一点问题

21、,在同学的帮助下那个实验箱子接口的问题得到了顺利的解决。实验五 8259A中断实验一、实验要求掌握用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。二、实验目的了解8088/86与8259之间的连接方法。学习8088/86对8259的控制方法。三、预备知识8259A是Intel公司专为控制优先级中断而设计的NMOS芯片。它集中断源优先级排队、中断源识别、中断向量提供和中断屏蔽等功能电路于一体,因而中断系统无需附任何电路,只需对8259A进行编程,就可管理8级优先中断,且中断请求方式和优先级模式等中断结构可通过编程设定或变更,中断入口地址也可由用户任意指定。四、实验原理说

22、明及连线1、本实验主要用到的模块:中断模块、单次脉冲源模块等;2、IR6接单次脉冲的/Q端。图 3-5五、实验内容用单脉冲发生器的输出脉冲作为中断源,每按一次按键产生一次中断申请,中断服务程序将在实验箱的显示屏显示一个字符“R”。六、程序框图主程序框图见图36;中断程序框图见图37。 图 3-6 图 3-71、确认连接好线路;2、装载并运行程序(联机时请参考程序8259.asm)。八、仪器配置 ZY15MicInt12BB微机原理及接口实验箱 一台。九、实验现象当中断发生时,实验箱屏幕将会显示字符R(编程时,如果要往屏幕送字符,请往端口88H送字符即可)。十、实验所用的程序UCODE SEGM

23、ENT ASSUME CS:UCODEBEGIN: JMP BEGIN_ INT_SEG DW ? INT_OFF DW ?BEGIN_: CLI MOV AH,35H MOV AL,0EH INT 21H MOV INT_OFF,BX MOV INT_SEG,ES MOV AX,CS ADD AX,10H MOV DS,AX MOV AH,25H MOV AL,0EH MOV DX,OFFSET UINTR INT 21H IN AL,21H AND AL,0BFH MOV DX,21H OUT DX,AL STI JMP $UINTR PROC FAR CLI MOV DX,88H MOV

24、 AL,R OUT DX,AL MOV AL,20H OUT 20H,AL IRETUINTR ENDPUCODE ENDS END BEGIN十一、实验程序的分析该程序主要应用了DOS的功能调用,主要用的是35号和25号功能,35号功能的具体作用是:35 取中断向量 AL=中断类型 ES:BX=中断向量 ;25号调用的功能是:25设置中断向量 DS:DX=中断向量AL=中断类型号 。实验六 ADC0809A/D转换实验一、实验目的1、加深理解逐次逼近法模数转换器的特征和工作原理;2、掌握A/D转换芯片与8088/86的接口方法;3、了解A/D芯片ADC0809转换性能及编程方法。二、预备知识

25、A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用的ADC0809属第二类,是八位A/D转换器。每采集一次一般需100us。本程序是用延时查询方式读入A/D转换结果,也可以用中断方式读入结果,在中断方式下,A/D转换结束后会自动产生EOC信号,做为转换完成的信号。三、实验原理说明及连线 1、本实验的位置在实验箱的“ADC0809模块”;2、本实验用芯片ADC0809的片选地址为2B8H,实验箱上已固定好,不需要再连线;3、将该实验模块的CLOCK和“信号源

26、模块”的1MHz信号连接起来;4、用排线将“系统数据总线输出单元”中的任意一组数据线和本实验模块的“ADC0809:XD0-XD7”连接起来;5、将通道0模拟量输入端IN0接模拟信号产生电路模块中的电位器R093的中心抽头,然后将R093的两端一端接地,另一端接VCC(+5V)。图 3-8四、实验内容利用电位器输出一个幅值可调的直流电压信号,送入ADC0809的通道0,将转换后的结果在屏幕上显示出来,并验证它与输入电压的关系。五、实验步骤1、确认连接好线路2、装载运行程序(联机时请参考程序0809.asm)。六、实验框图图 3-9七、实验现象当程序开始运行后,实验箱上会出现十六进制数字0000

27、到ffff一直闪动,把开关旋钮到最开始时候显示0000,最后是ffff八、实验所用程序CODE SEGMENT ASSUME CS:CODESTART: MOV DX,2B8H ;2B0H-2B7H MOV AL,00H OUT DX,AL CALL DELAY IN AL,DX CALL SHOW CALL DELAY JMP STARTSHOW PROC NEAR PUSH DX PUSH AX MOV CL,4 SHR AL,CL AND AL,0FH CALL H2C JC SHOW_OUT MOV DX,88H OUT DX,AL POP AX AND AL,0FH CALL H2C

28、 JC SHOW_OUT MOV DX,88H OUT DX,AL MOV CX,0FFHDELA: LOOP DELA SHOW_OUT: POP DX RETSHOW ENDPH2C PROC NEAR CMP AL,0 JAE N0_9 JMP H2C_ERRN0_9: CMP AL,9 JBE N0_9_OK CMP AL,0AH JAE HEX_CMP JMP H2C_ERRHEX_CMP: CMP AL,0FH JBE HEX_CMP_OK JMP H2C_ERRHEX_CMP_OK: CLC ADD AL,37H JMP CMP_OUTN0_9_OK: CLC ADD AL,30H CMP_OUT: RETH2C ENDPDELAY PROC NEAR MOV CX,0FFHDELEA: LOOP DELEA RETDELAY ENDPCODE ENDS END START

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

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