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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

15年嘉定微机实验指导书DOC.docx

1、15年嘉定微机实验指导书DOC微机原理实验指导书同济大学电子与信息工程学院2015年5月实验一 显示程序实验1. 实验目的 (1) 掌握在PC机上以十六进制形式显示数据的方法。 (2) 掌握部分DOS功能调用使用方法。 (3) 熟悉Tddebug调试环境和Turbo Debugger的使用。 2. 实验设备 PC微机一台。 3. 实验内容及说明 一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中使用DOS功能调用INT 21H。 (1) 显示单

2、个字符输出 :入口:AH=02H ,调用参数:DL=输出字符 (2) 显示字符串 : 入口:AH=09H ,调用参数:DS:DX=串地址,$为结束字符 (3) 返回DOS系统 : 入口:AH=4CH ,调用参数:AL=返回码 4. 实验步骤 (1) 运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1所示。 (2) 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接。 (3) 使用Rmrun菜单中的Run,运行程序,观察运行结果。 (4) 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后

3、,各寄存器及数据区的内容。 (5) 更改数据区中的数据,考察程序的正确性。 图1 显示程序实验流程图5. 参考程序清单 ;显示程序实验STACK1 SEGMENT STACKDW 256 DUP ( ? )STACK1 ENDSDATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$;0AH为换行、0DH为回车。MES1 DB Show a as hex:,0AH,0DH,$SD DB aDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX

4、MOV DX,OFFSET MES ;显示退出提示 MOV AH,09H INT 21H MOV DX,OFFSET MES1 ;show message MOV AH,09H INT 21H MOV SI,OFFSET SD MOV AL,SI AND AL,0F0H ;取高4位,并显示。 SHR AL,4CMP AL,0AH ;是否是A以上的数JB C2 ADD AL,07H C2: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H MOV AL,SI AND AL,0FH ;取低4位,并显示。 CMP AL,0AH JB C3

5、 ADD AL,07HC3: ADD AL,30H MOV DL,AL MOV AH,02H INT 21HKEY: MOV AH,1 ; 判断是否有按键按下? INT 16H ;BIOS调用,读键盘缓冲区字符 JZ KEY ;ZF=1缓冲区空,无键盘输入 MOV AX,4C00H ; go back to dos INT 21HCODE ENDS END START实验二 数码转换程序实验1. 实验目的 掌握不同进制数及编码相互转换的程序设计方法。 2. 实验设备 PC微机一台。 3. 实验内容及说明 计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进

6、制数进行计算,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换关系如图2所示。 要求编写显示子程序。图2 计算机与外设间的数码转换关系(1) 将ASCII码表示的十进制数转换为二进制数 十进制数可以表示为:,其中Di代表十进制数1、2、39、0。 上式可转换为: 由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位Dn开始作乘10加次位的操作,依次迭代类推,则可求出二进制数结果。 本实验要求将缓冲区中的一个五位十进制数00012的ASCII码转换成二进制数,并将转换结果按位显示

7、在屏幕上。转换过程的参考流程如图3所示。 图3 十进制ASCII转换为二进制数参考流程;将ASCII码十进制数转换为二进制数STACK1 SEGMENT STACK DW 256 DUP ( ? )STACK1 ENDSDDATA SEGMENTMES1 DB The ascii code of decimal code are:$BUF DB 30H,30H,30H,31H,32H DB 10H DUP ( 0 )DDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DDATASTART: MOV AX,DDATA MOV DS,AX MOV SI,OFFSET

8、BUF MOV BX,000AH MOV CX,0004H MOV AH,00H MOV AL,SI SUB AL,30HA1: MUL BX ADD AL,SI+01 SUB AL,30H INC SI LOOP A1 MOV SI,AX MOV DX,OFFSET MES1 MOV AH,09H INT 21H INC SI ;显示高字节 CALL SHOW DEC SI ;显示低字节 CALL SHOW MOV AX,4C00H INT 21HSHOW PROC NEAR ;编写显示子程序 .SHOW ENDPCODE ENDS END START(2) 将十进制数的ASCII码转换为B

9、CD码 本实验要求将键盘输入的一个五位十进制数54321的ASC码存放在数据区中,转换为 BCD 码后 ,并将转换结果按位分别显示于屏幕上 。若输入的不是十进制数的ASC码,则输出“FF”。提示:一字节ASC码取其低四位即变为BCD码。转换部分的实验流程参见图4。 图4 十进制ASCII转换为BCD码数参考流程;将十进制数的ASCII码转换为BCD码STACK1 SEGMENT STACK DW 256 DUP ( ? )STACK1 ENDSDDATA SEGMENTMES1 DB The BCD code of decimal are:$BUF DB 31H,32H,33H,34H,35H

10、 DB 10H DUP ( 0 )DDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DDATASTART: MOV AX,DDATA MOV DS,AX MOV CX,0005H MOV DI,OFFSET BUFA1: MOV BL,0FFH MOV AL, DI CMP AL,3AH ;比较AL中的数是否是09的ASCII码 JNB A2 SUB AL,30H JB A2 MOV BL,ALA2: MOV AL,BL MOV DI+05H,AL INC DI LOOP A1 MOV SI ,DI MOV CX,05H MOV DX,OFFSET MES1 M

11、OV AH,09H INT 21HA3: CALL SHOW MOV DL,20H MOV AH,02H INT 21H INC SI LOOP A3 MOV AX,4C00H INT 21HSHOW PROC NEAR ;编写显示子程序 .SHOW ENDPCODE ENDS END START 4. 实验步骤 (1) 运行Tddebug软件,选择Edit菜单,根据实验内容描述的数码转换内容分别编写实验程序。 (2) 利用Compile菜单中的Compile和Link对实验程序进行汇编、连接。 (3) 利用Rmrun菜单中的Run,运行程序,观察运行结果。 (4) 使用Rmrun菜单中的De

12、bug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。 (5) 编写显示子程序,并更改数据区中的数据,考察程序的正确性。 实验三 循环程序设计实验1. 实验目的掌握循环程序的设计方法。2. 实验设备PC微机一台。3. 实验内容及说明一个循环程序通常由以下几个部分组成:1) 循环初始化部分:用于对相关内存单元及寄存器设置初始值,如设置地址指针、循环次数、某些标志位等。只有正确地进行了初始化设置,循环程序才能正确运行并及时停止。2) 循环体:对要求重复执行的程序段部分,对应于要求重复执行的操作。3) 循环控制部分:为下一轮处理修正地址指针及循环次数等,并判断循环结束的条件是

13、否满足,若满足则退出循环。4) 循环结束部分:用于保存循环运行的结果等。5) 编写显示子程序,并更改数据区中的数据,考察程序的正确性。4. 编写程序完成对10个数的求和并显示(P101)分析:需分配空间保存和数(SUM),在循环体中进行求和操作。参考程序清单:DATA SEGMENTBUFFER DW 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; 原始10个数据SUM DW ? ; 存放和数DATA ENDSSTAC SEGMENT STACK STACK DB 100 DUP ( ? )STAC ENDSCODE SEGMENT ASSUME CS:CODE, DS:DAT

14、ASTART: MOV AX,DATA MOV DS,AX MOV AX,0 ;AX中为和数,初始为0 MOV DI,OFFSET SUM ;存放结果地址送DI MOV BX,OFFSET BUFFER ;数据缓冲区首地址,送BX MOV CX,10 ;循环次数送CXLOOP1: ADD AX,BX ;累加 INC BX ;修改数据缓冲区地址 INC BX DEC CX ;次数减1 JNZ LOOP1 ;到10次了吗?不到,;转LOOP1 MOV DI,AX ;到10次,存放结果 ;填写调用指令 MOV AX,4C00H ; 返回DOS INT 21HSHOW . ;编写显示子程序 CODE

15、ENDS END START实验四 子程序设计实验1. 实验目的(1) 掌握子程序的定义调用方法。(2) 掌握系统功能调用程序的使用和编写方法。2. 实验设备PC微机一台。3. 实验内容及说明将内存中的一串1位十六进制数转换为其对应的ASCII码并显示(P105)。例如:十六进制2所对应的ASCII码为32H,而十六进制数C所对应ASCII码为C(即43H)。分析:将一个十六进制数转化为其对应的ASCII码的功能设计为子程序。主程序分若干次调用该子程序,但每次调用的参数为不同的待转换的十六进制数。4. 程序清单如下:DATA SEGMENTHEXBUF DB 02H, 08H, 0AH, 09

16、H, 0FH ;待转换的一串1位十六进制数COUNT EQU $ - HEXBUF ;COUNT的值为这一串十六进制数的个数DATA ENDSSTAC SEGMENT STACK STACK DB 100 DUP ( ? )STAC ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STAC;子程序HEXD:将1位十六进制数转换为其对应的ASCII码;入口参数:AL含待转换的1位十六进制数;出口参数:AL含转换完的结果(ASCII码)HEXD PROC NEAR CMP AL, 0AH JL ADDZ ADD AL,7H ;A-0-0AHADDZ: AD

17、D AL,30H ;填写指令 ;填写指令 ;填写指令 RETHEXD ENDP;以下为主程序BEGIN: MOV AX,DATA MOV DS,AX MOV BX,OFFSET HEXBUF MOV CX,COUNTREPEAT0: MOV AL,BX CALL HEXD MOV BX,AL INC BX LOOP REPEAT0 MOV AX,4C00H INT 21HCODE ENDS END BEGIN实验五 8259中断控制器应用实验 1 实验目的 (1) 学习中断控制器8259的工作原理。 (2) 掌握可编程控制器8259的应用编程方法。 2 实验设备 PC微机一台、TD-PIT+

18、实验系统一套。 3 实验内容 (1) 利用PC机给实验系统分配的中断线,设计一个单中断应用。使用单次脉冲模拟中断产生。编写中断处理程序,在显示器屏幕上显示一个字符。 (2) 利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IR1中断请求进行处理。 4 实验原理 (1) 8259控制器的介绍 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况

19、下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:a) 记录各级中断源请求;b) 判别优先级,确定是否响应和响应哪一级中断;c) 响应中断时,向CPU传送中断类型号。 8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。(2) 8259寄存器及命令的控制访问在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。对寄存器和命令的访问控制如表1所示。表1 8259寄存器

20、及命令的控制访问(3) PC微机系统中的8259 在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表2示。两片8259A的端口地址为:主片8259使用020H和021H两个端口;从片使用0A0H和0A1H两个端口。系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为0级最高,依次为1级、8级15级,然后是3级7级。 在扩展系统总线上的INTR对应的中断线就是PC机保留中断其中的一个。对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中

21、断向量。 表2 PC微机系统中的硬件中断5 实验说明及步骤 (1) 中断查询方式应用实验8259支持查询方式检测中断请求,具体过程为:设置8259 OCW3中的P位为1即可执行查询命令,8259将下一个I/O读命令视作一次中断响应。如果有中断请求,则置ISR中的相应位并读优先级。从OCW3写操作到I/O读操作期间禁止中断,读出字节的最高位为1表示有中断,最低3位(D0-D2)为最高优先级中断请求源的编码。查询字格式如图5所示。图5 8259 OCW3查询字格式本实验要求使用这种方法编写程序处理实验单元8259 IR0和IR1请求的中断,IR0请求在屏幕上显示字符“0”,IR0请求则在屏幕上显示

22、字符“1”以示中断到来。IR0和IR1分别用一个单次脉冲的上升沿模拟中断产生。参考流程如图6所示,参考实验接线图如图7所示。图6 实验参考流程图注意:P=1的OCW3可作为向8259A发出的查询命令,表明用查询方式决定中断优先级的次序。具体步骤:向8259A发P=1的OCW3命令(A0=0);同一地址(A0=0)读指令(查询字格式,图5),将起中断识别作用。图7 参考实验接线图实验步骤如下:a) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 b) 运行Tdpit集成操作软件,查看系统资源分配情况,记录与所用片选信号对应的I/O端口始地址。c) 参考实验流程图编写程序,注意使用正确的端口

23、地址,然后编译链接。 d) 参考实验接线图连接实验线路。 e) 运行程序,按动KK1+、KK1+按键,观察中断响应是否正常。 8259中断查询方式应用实验代码;* *根据查看端口资源修改下列符号值*IOY0 EQU 9C00H ;片选IOY0对应的端口始地址;* *MY8259_ICW1 EQU IOY0+00H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU IOY0+04H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU IOY0+04H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU IOY0+04H ;实验系统中8259

24、的ICW4端口地址MY8259_OCW1 EQU IOY0+04H ;实验系统中8259的OCW1端口地址MY8259_OCW2 EQU IOY0+00H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU IOY0+00H ;实验系统中8259的OCW3端口地址STACK1 SEGMENT STACK DW 256 DUP ( ? )STACK1 ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV DX,MY8259_ICW1 ;;初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4 OUT DX,

25、 AL MOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2 MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,01H ;非自动结束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV AL,0FCH ;打开IR0和IR1的屏蔽位 OUT DX,AL QUERY: MOV AH,1 ;判断是否有按键按下 INT 16H ;BIOS调用 JNZ QUIT ;ZF=0,有按键则退出 MOV DX,MY8259_OCW3 ;向8259的OC

26、W3发送查询命令,P=1 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字(查询字格式,图5) TEST AL,80H ;判断中断是否已响应 JZ QUERY ;没有响应则继续查询 AND AL,03H ;中断源请求编码, CMP AL,00H JE IR0ISR ;若为IR0请求,跳到IR0处理程序 JNE IR1ISR ;若为IR1请求,跳到IR1处理程序 JMP QUERYIR0ISR:MOV AL,30H ;IR0处理,显示字符0 MOV AH,0EH INT 10H MOV AL,20H INT 10H JMP EOIIR1ISR:MOV AL,31H ;IR

27、1处理,显示字符1 MOV AH,0EH INT 10H ;BIOS调用,显示字符(功能号AH=0EH) MOV AL,20H INT 10HEOI: MOV DX,MY8259_OCW2 ;向实验系统中8259发送中断结束命令 MOV AL,20H OUT DX,AL JMP QUERY QUIT: MOV AX,4C00H ;结束程序退出 INT 21HCODE ENDS END START实验六 8255并行控制器应用实验 11. 实验目的 (1) 掌握8255的工作方式及应用编程。 (2) 掌握8255的典型应用电路接法。 2. 实验设备 PC微机一台、TD-PIT+ 实验系统一套。

28、3. 实验内容 (1) 基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。 (2) 流水灯显示实验。编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。 (2) 实验原理 并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。8255可编程外围接口芯片具有A、B、C三个并行接口,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。8255工作方式控制字和

29、C口按位置位/复位控制字格式如图8所示。 图8 8255控制字格式5. 实验说明及步骤 本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。参考程序流程如图9所示。 图9 8255参考程序流程图图10 8255参考接线图实验步骤:a) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 b) 参考图10所示连接实验线路。 c) 首先运行CHECK程序,查看I/O空间始地址。 d) 利用查出的地址编写程序,然后编译链接。 e) 运行程序,拨动开关,看数据灯显示是否正确。 ;8255基本输入输出实验代码;*根据查看端口资源修改下列符号值*IOY0 EQU 9C00H ;片选IOY0对应的端口始地址;*MY8255_A EQU IOY0+0

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

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