江苏大学 微型计算机原理实验(9学时)-new

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理及应用实验
江苏大学电气与信息工程学院
微机原理及应用实验计划
• • • • • • 1.8086/8088系统环境认识 2 . 程序设计及调试 3.中断控制器8259应用 4.并行接口8255应用 5.定时/计数器8253应用 (选做) 共 2学时 2 / 3 学时 2学时 2学时 2学时 10学时 8 / 10 学时
问答二:
实验题2: 实验题 : 程序运行前: 、 、 各寄存器的内容; 程序运行前:CH、DX、AX各寄存器的内容; 程序运行后: CH、DX、AX各寄存器的内容; 程序运行后: 、 、 各寄存器的内容;
并分析其正确性。 并分析其正确性。
三、实验步骤
在计算机上建立程序、编译、连接、运行,验证程序 的正确性。
四、实验报告要求
1. 写出程序清单并画出程序流程图。 2. 写出数据及调试结果。(观察地址指针、计数器变 化)
实验三:中断控制器 中断控制器8259实验 中断控制器 实验
一、实验目的
1.了解可屏蔽中断的响应和处理过程 2.掌握8259使用及中断服务程序的设计。
二、实验内容
使用IRQ1,用单脉冲信号模拟外部中断信号,每 一个单脉冲信号显示一个字符“M”,共10次退出 程序。
四、实验报告要求
1. 写出FD88调试软件的主要操作(结合实验内 容); 2. 写出如何修改Memory中Y值的操作步骤; 3. 思考:在实验中不采用带断点运行,而用全 速运行(不设断点)有何不同?会出现什么现象? ?
五、预习要求
认真编写程序(实验二中1,2),写好上机操 作步骤及需要的测试数据。
4. 用MASM文件编译产生目标代码.OBJ文件 F:\FD88> MASM 文件名.ASM; ; 如源程序中有语法错误则屏幕会提示出错信息, 重新回到第3步进行修改、编辑、存盘、编译。 5. 用LINK程序连接产生.EXE文件; F:\FD88> LINK 文件名.OBJ;
在源程序中没有定义堆栈段,有警告提示,可以忽略。
问答:
?? DSEG SEGMENT ADDR DW NUMBER Y NUMBER DW 1111H 结果 COUNT DW ? DSEG ENDS
本次实验程序调试成功,请每一位同学讲述正确 本次实验程序调试成功, 的结果是什么, DS:0000—DS:0005内存放的值 的结果是什么, DS:0000 DS:0005内存放的值 DS:0005 是多少? 是多少?
请签到
实验1 实验1
实验2 实验2
实验3 实验3
实验4 实验4
实验5 实验5
实验一: 实验一 8086系统环境认识 系统环境认识
一、实验目的
1.掌握在计算机上建立、编译、连接、调试和运 行 行8086/8088汇编语言程序的步骤; 汇编语言程序的步骤; 2.熟悉FD88调试软件的使用方法; 3.了解FD88系统实验系统组成。
3、中断服务程序
1)显示M字符 显示M mov al,’M’ mov ah,1 int 14h ;系统功能调用 2)次数减1 次数减1 发出中断结束命令OCW OCW2 3)发出中断结束命令OCW2 4)中断返回
控制电路
初始化编程
ICW1 ICW2
OCW1 OCW2 OCW3
操作方 式编程 可多次改写的
一旦写入, 一旦写入,工作过程 中不再改变。 中不再改变。
ICW3 ICW4
编程说明
2、主程序: 主程序:
程序框架
1)将中断子程序的入口地址置入中断矢量表的相应表项 将中断子程序的入口地址置入中断矢量表的相应表项 中断矢量表 8259初始化ICW1-->ICW -->ICW 初始化ICW >ICW2 >ICW4 2)8259初始化ICW1-->ICW2-->ICW4 OCW1 操作命令字OCW 3)操作命令字OCW1 设置中断次数, 4)设置中断次数,开中断 5)等待中断 判断10次中断到结束程序,未到继续第5 10次中断到结束程序 6)判断10次中断到结束程序,未到继续第5步
实验箱示意图
插上
FD88调试软件的使用:
(1)连接成功 连接成功,如何装入 .EXE 文件 装入. 文件到FD88实验装 连接成功 装入 EXE文件 置中; (2)如何 观察各窗口信息 (2)如何观察各窗口信息(程序窗,寄存器窗、存 观察各窗口信息(程序窗,寄存器窗、存 贮器窗等),分析各窗的内容; (3)如何设置断点 设置断点,并学会带断点运行程序 断点运行程序; 设置断点 断点运行程序 (4)如何观察实验结果 观察实验结果,并分析其结果的正确性 其结果的正确性; 观察实验结果 其结果的正确性 (5)如何修改指定单元 修改指定单元内的数据(已知数),再 修改指定单元 运行程序。 一次运行程序 运行程序 (6)Alt-X退出FD88软件,关闭实验箱电源。
参考程序
分析结果
问答一:
实验题1: 实验题 : DATA SEGMENT DAT DB 1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,9,10,-8,-9,-10 DATZ DB 20 DUP(?) DATF DB 20 DUP(?) DATA ENDS
结合你的数据段的定义,分析并回答: 结合你的数据段的定义,分析并回答: 你的数据段的定义 已知数、正数组、正数个数、负数组、 已知数、正数组、正数个数、负数组、负数 个数存放位置及内容是什么? 个数存放位置及内容是什么?
四、实验步骤
1. 硬件接线: 将单脉冲发生器的输出端(J23)接JJ4-IRQ1。 2. 在计算机上建立程序、汇编、连接、调试运行程序。 注意: ①用调试软件FD88时,要点击全屏图标; ②调试时可以不要设置断点,采用连续运行方式运行程 序; ③按动输出脉冲的按钮,实时看现象。 ④按下中断ABORT按钮或复位RESET按钮,停止程序运 行。
三、中断控制器8259A芯片
JJ4
JJ5
一片8259可管理8级中断。 插孔JJ5用于级联方式,可管理更多的中断。 插孔JJ4是8级中断请求信号的输入插孔,在8个中断请 求中IRQ0已连接8253通道0输出,IRQ4已用作8250中 断申请,我们可以使用其余6个中断。本次实验中用 IRQ1号中断。 8259A芯片使用地址20H和21H。
④实验结果
分析程序知:结果放在DS段中的COUNT内,点 中存储Memory窗,按下Ctrl-F2,输入地址DS:00, 查看DS:0000~DS:0005内的内容。
分析实验结果 ④分析实验结果
通过点击菜单Memory Display,切换Memory窗 中数据显示字节DB或字DW。
修改指定单元值(输入Y ⑤修改指定单元值(输入Y)
编程框架
DATA … … DATA CODE MAIN SEGMENT ENDS SEGMENT PROC FAR CS:CODE,DS: ASSUME CS:CODE,DS:DATA START: START: PUSH DS AX, XOR AX,AX PUSH AX AX, MOV AX,DATA DS, MOV DS,AX … … RET MAIN ENDP CODE ENDS END START
二、实验内容
计算16位二进制Y中的1的个数,并将结果存入 COUNT单元,已知数Y的地址存放在ADDR中。 已知数:Y=0001000100010001B=1111H 结果:(COUNT)=4 程序见P.22。 更正:倒数第5行SHIFY应为SHIFT
三、实验步骤
1.开启计算机进入98系统,从“开始”——》“程 序”——》“MS-DOS方式” 2.进入文件所在文件夹 F: ——》CD FD88(FD88为子目录名) 3. 创建源程序(*.ASM文件) 文件名中的类型为(.ASM),文件名须小于8个字 符,只允许数字或字母。如dq1.asm F:\FD88> Q 文件名.ASM ①进入编辑界面输入程序; ②按ESC键,选择FILE菜单中的file 存盘
1. 编写一程序,把20个字节的数组分成正数组和负数组, 并分别计算两个数组中数据的个数。 2. 编写一程序实现将32位数左移4位,并将高四位存入CH 中,已知32位数存放在DX:AX中。
分析:
题1分析: 已知一个含20个字节数据的数组(可正可负),开 已知一个含20个字节数据的数组(可正可负பைடு நூலகம்,开 20个字节数据的数组 ), 辟20个字节正数组的存储空间,开辟20个字节负数组的 20个字节正数组的存储空间,开辟20个字节负数组的 个字节正数组的存储空间 20 存储空间,开辟1个字节存储空间存储统计的正数个数, 存储空间,开辟1个字节存储空间存储统计的正数个数, 开辟1个字节存储空间存储统计的负数个数。 开辟1个字节存储空间存储统计的负数个数。 取数指针用:SI、DI、 取数指针用:SI、DI、BX SI,BLOCK; BLOCK偏移地址取到SI中 偏移地址取到SI LEA SI,BLOCK; BLOCK偏移地址取到SI中。 判数是正还是负,只要判其最高位为1 判数是正还是负,只要判其最高位为1?
实验箱示意接线图
五、编程说明
1、可屏蔽中断的响应和处理过程
中断方式的实现一般需要经历下述过程: 中断方式的实现一般需要经历下述过程:
中 主 程 序 断 服 务 程 序
中断
中断
中断
中断
8259A 8
中断 中断

8259A
8259A的编程使用 259A
使用8259A进行中断控制时,CPU通过OUT指令向 使用8259A进行中断控制时,CPU通过OUT指令向 8259 通过OUT 8259A内部寄存器写入相应的命令字 命令字, 259A 8259A内部寄存器写入相应的命令字,8259A按命令字 指定的方式工作。 指定的方式工作。
题2分析: 32位数存放在DX:AX中 32位数存放在DX:AX中,即DX存放高字、AX存放低字。 位数存放在DX DX存放高字、AX存放低字。 存放高字 存放低字 左移4位实现: CH:DX:AX寄存器内容 40位 寄存器内容( 左移4位实现:通过把 CH:DX:AX寄存器内容(40位) 左移1 左移1位,再循环移位共4次。 再循环移位共4 32位数左移1位,AX逻辑左移1位,最高位移入CF, DX 32位数左移1 AX逻辑左移1 最高位移入CF, 位数左移 逻辑左移 CF 带进位左移1 CH带进位左移 带进位左移1 带进位左移1位, CH带进位左移1位。 OPRD, 逻辑左移 SHL OPRD,CNT 带进位位的循环左移RCL OPRD,CNT 带进位位的循环左移RCL OPRD,
注意: 第4步后若提示源程序中有语法错误, 源程序中有语法错误, 不能下一步,必须回第3步
6. 进入FD88调试软件进行.EXE文件调试, F:\FD88> FD88/1(需先打开实验系统电源开 关),其中1代表设备连接计算机串行口COM1。
注意: 先连接好串行接口,再打开 实验箱电源。切勿带电插拔串口通讯线!
①连接成功
装载文件_F3 ①装载文件_F3
②观察各窗口信息
主要观察程序CS窗、R窗等
③设置断点
在程序代码窗中找到程序最后一条语句,按下 Ctrl-F8设置断点,该行处由黄变红。
带断点运行程序_F9 ③带断点运行程序_F9
按下F9,该行处由红变白。在R窗中ip由0000变 为0022,分析程序知CX内存放Y的个数。
实验要求:
• 实验前预习,提前编写预习程序。 实验前预习,提前编写预习程序。 • 实验时按学号对应机号入座,并签到, 实验时按学号对应机号入座,并签到, 做完实验请通知老师。 做完实验请通知老师。 • 实验时不要带电触摸芯片,不可随意拔 实验时不要带电触摸芯片, 插芯片。有要求接线的实验, 插芯片。有要求接线的实验,请务必先 断电再接线。出现问题及时联系老师。 断电再接线。出现问题及时联系老师。 • 实验完整理好再离开。 实验完整理好再离开。 • 注意室内卫生。 注意室内卫生。
移动光标到指定单元处,修改数据。
⑤运行程序
先按下F5(或修改R窗中的ip=0000); 再按下F9带断点运行; 分析Memory窗中数据显示。
实验二: 实验二:程序设计及调试
一、实验目的
1.掌握分支、循环等基本程序结构及程序设计方法。 2.掌握用FD88调试软件调试程序。
二、实验内容 实验内容
相关文档
最新文档