微机原理实验报告常作震 0803Word文档格式.docx
- 文档编号:19433991
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:34
- 大小:246.17KB
微机原理实验报告常作震 0803Word文档格式.docx
《微机原理实验报告常作震 0803Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告常作震 0803Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
认识Tddebug集成操作软件实验日志
指导教师:
祝家钰实验时间:
第7周星期四7-8节
学院:
通信与信息工程学院专业:
通信与信息工程
班级:
0190801学号:
08020313姓名:
常作震
实验室:
S318
认识Tddebug集成操作软件
1.熟悉汇编程序的开发过程。
2.认识Tddebug集成操作软件。
3.掌握在Tddebug集成环境中编辑、编译、连接汇编语言程序方法。
4.掌握INT21H软件中断来调用DOS内部子程序的方法
实验内容:
数据传送实验
编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
参见示例出程序。
修改此程序,采用字符串传送指令完成。
2.实验中使用DOS功能调用(INT21H):
参见教材《32位微型计算机原理与接口技术》89页
(1)显示字符串
入口:
AH=09H
调用参数:
DS:
DX=串首地址,’$’为结束字符。
(2)返回DOS系统
AH=4CH
AL=返回码
3.有关字符串的操作指令
参见教材《32位微型计算机原理与接口技术》62页
4.实验目的:
通过对该程序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各个寄存器及数据区的内容。
运行Tddebug软件,选择Edit菜单编写实验程序
使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
使用Rmrun菜单中的Run运行程序,观察运行结果。
使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各寄存器及数据区的内容。
过程如下:
按F7单步执行,在代码区中有一个三角,表示正在执行的指令。
每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。
检查内存数据区的内容,关键是找出用户程序的数据段和附加段:
方法1:
在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:
”DS或ES寄存器的值:
偏移地址”,即可显示用户指定的数据区
方法2:
选择菜单View|Dump,弹出内存数据显示窗口。
3)查看执行结果:
按Alt+F5,切换到用户窗口。
更改数据区中的数据,考察、调试程序的正确性。
;
数据传送实验,采用相对寻址方式
DDATASEGMENT;
定义源数据段
MSRDB"
HELLO,WORLD!
$"
LENEQU$-MSR
DDATAENDS
EXDASEGMENT;
定义附加数据段
MSDDBLENDUP(?
)
EXDAENDS
MYSTACKSEGMENTSTACK;
定义堆栈段
DW20DUP(?
MYSTACKENDS
CODESEGMENT;
定义代码段
ASSUMECS:
CODE,DS:
DDATA,ES:
EXDA
START:
MOVAX,DDATA
MOVDS,AX;
装载数据段寄存器
MOVAX,EXDA
MOVES,AX;
装载附加数据段寄存器
MOVSI,OFFSETMSR
MOVDI,OFFSETMSD
MOVCX,LEN
MOVBX,0
NEXT:
MOVAL,MSR[BX];
开始传输数据
MOVES:
MSD[BX],AL
INCBX
LOOPNEXT
PUSHES
POPDS;
将附加段寄存器指向的段值赋给数据段寄存器
MOVDX,OFFSETMSD
MOVAH,9
INT21H;
显示字符串
MOVAX,4C00H
返回DOS状态
CODEENDS
ENDSTART
屏幕显示:
HELLO,WORLD!
这一次上机主要是认识汇编语言编程软件的应用,因为之前老师有在课堂上做演示,所以对这个软件也不是特别的陌生,刚开始写程序都是一个一个敲键盘,但是后来发现其实不用这么麻烦的,因为它本身是将程序存在了asm文件中,而这个文件通过新建文件在将程序拷贝到其中即可,不过要注意将后缀名改为.asm,后面该程序到时花了些时间,不过还好运行成功。
要说最难的应该是读程序了,刚开始学了微机原理,对它本身的运行机制还不是很了解,虽然程序基本上都懂了,但还是似懂非懂的,所以今后要在跟机器打交道上多运用但不执行,来加深对机器运行的具体步骤的理解。
代码转换程序设计实验日志
指导教师:
方义秋实验时间:
第9周星期四7-8节
通信与信息工程学院专业:
08020313姓名:
常作震
代码转换程序设计
了解微机中所使用的各类数制及编码方法。
掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解。
掌握将存储在内存单元中的数据以十六进制数形式、十进制数形式和二进制数形式显示在屏幕上的方法。
1.【示例】将5位十进制数的数字串转换为一个字的二进制数
2.编写程序将内存中一个字的数转换为十进制数的数字串显示。
3.编程将十进制的数字串转换为BCD码
4.编程将BCD码转换为二进制数
5.编程将二进制数转换为十进制数显示
画出实验流程图。
使用Rmrun菜单中的Debug调试程序。
单步执行指令,观察各寄存器及数据区的内容。
更改数据区中的数据,考察程序的正确性。
图6-4将内存中一个字的数转换为图6-5将BCD码转换为
十进制数的数字串参考流程二进制数参考流程
DATASEGMENT
MESDB'
Theasciicodeofdecimalcodeare:
$'
BUFDB30H,30H,30H,31H,32H;
十进制数00012的ASCII码
DB10HDUP(0)
CODESEGMENT
ASSUMECS:
DDATA
MOVDS,AX
MOVSI,OFFSETBUF
MOVBX,000AH;
送被乘数
MOVCX,0004H;
送转换的位数
MOVAH,00H
MOVAL,[SI];
取第一位的ASCII码
SUBAL,30H
A1:
IMULBX;
乘10
ADDAL,[SI+01]
INCSI
LOOPA1
MOV[SI],AX
MOVDX,OFFSETMES;
显示提示信息
MOVAH,09H
INT21H
INCSI;
显示高字节
CALLSHOW
DECSI;
显示低字节
MOVAX,4C00H;
返回DOS
SHOWPROCNEAR;
显示内存中一个字节字符的程序
MOVAL,DS:
[SI]
ANDAL,0F0H;
取高4位
SHRAL,4
CMPAL,0AH;
是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;
显示字符
MOVAH,02H
ANDAL,0FH;
取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
显示字符
RET
ENDP
CODEENDS
十进制数00012,屏幕显示0000C
这次上机主要是加深对机器运行时各个进制数的转换,计算机CPU主要是利用的二进制来执行具体的任务的,所以我们应该了解机器执行的语言环境是怎样的,通过编程,我对机器执行的过程有了更深的了解,对二进制在微机上的作用也有了更深的体会。
通过代码的转换可以让机器执行的代码(二进制)以我们看的懂的十进制形式显示出来,这是非常实用的。
PCI总线中断应用实验日志
祝家钰实验时间:
第11周星期四7-8节
08020313姓名:
S318
PCI总线中断应用
掌握使用PCI中断的方法。
了解操作PCI设备I/O端口的方法。
进一步掌握8259中断控制器的工作原理、编程方法以及PC机如何通过8259A实现对外部可屏蔽硬件中断源的管理。
进一步掌握中断服务程序的设计方法。
1.复习中断的概念,了解PC机系统中断向量表的占用情况(见表10-1)。
2.复习8259中断控制器的工作原理,了解PC机中外部可屏蔽硬件中断的处理过程。
3.复习PC机如何通过8259A实现对外部可屏蔽硬件中断源的管理。
4.仔细阅读实验说明、示例程序,掌握PCI总线中断服务程序的编写方法。
5.根据实验内容,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。
6.【示例】编写一实验程序,利用实验装置提供的中断源,完成每按动一次脉冲开关,产生一次中断,向显示器输出字符”7”。
7.修改示例程序,控制中断响应次数为10次,即当第11次以后按动脉冲开关,屏幕上不再显示”7”。
分析程序,画出实验流程图。
用排线将KKUNIT中的KK1脉冲开关与仿真ISA总线中的IRQ信号连接。
打开实验箱电源。
运行程序,按动KK1,观察运行结果。
注意保留该程序,以便后续程序使用。
12-1
INTCSR_BYTE0EQU9438H;
修改PCI操作寄存器的端口地址
INTCSR_BYTE1EQU9439H
INTCSR_BYTE2EQU943AH
INTCSR_BYTE3EQU943BH
IMB4_BYTE3EQU941FH
CSBAKDW?
IPBAKDW?
MKBAKDB?
DATAENDS
DATA
CLI
MOVAX,DATA
MOVDS,AX
;
初始化PCI寄存器
MOVDX,INTCSR_BYTE0
MOVAL,00H
OUTDX,AL
MOVDX,INTCSR_BYTE1
MOVAL,1FH
MOVDX,INTCSR_BYTE2
MOVAL,3FH
MOVDX,INTCSR_BYTE3
保存和替换中断入口地址
MOVAX,0000H
MOVES,AX
MOVDI,01CCH;
INT73H,01CCH=73H*4,根据中断号修改
MOVAX,ES:
[DI]
MOVIPBAK,AX;
IP
MOVAX,OFFSETMYINT
CLD
STOSW
[DI];
CS
MOVCSBAK,AX
MOVAX,SEGMYINT
保存中断屏蔽字寄存器内容
INAL,0A1H
MOVMKBAK,AL
ANDAL,0F7H;
打开中断屏蔽位,根据中断号修改
OUT0A1H,AL
STI
等待
NOP
CALLBREAK
JMPA1
========中断服务程序===========
MYINT:
PUSHDS
PUSHAX
PUSHDX
清PCI板中断标志
MOVDX,IMB4_BYTE3
INAL,DX
OUTDX,AL
清8259中断标志
MOVAL,63H;
根据中断号修改
OUT0A0H,AL
MOVAL,62H
OUT20H,AL
显示字符’7’
MOVAH,0EH
MOVAL,37H
INT10H
POPDX
POPAX
POPDS
IRET
检测是否有键按下程序
BREAKPROCNEAR
MOVAH,06H
MOVDL,0FFH
INT21H
JERETURN
CLI
恢复中断屏蔽命令字
MOVAL,MKBAK
恢复中断入口地址
MOVDI,01CCH;
MOVAX,IPBAK
MOVAX,CSBAK
MOVDX,INTCSR_BYTE1
MOVAL,00H
OUTDX,AL
MOVAX,4C00H
RETURN:
POPDS
BREAKENDP
按一下键屏幕显示7
自己修改的程序,完成买次按下按键后分别显示显示1,2,3,4,…
但是不知道问题出在哪,就是老是显示不对,
先执行PCI_BIOS.EXE,获得PCI板卡申请的第一个I/O空间的首地址及
中断号,修改下面CPU访问PCI操作寄存器的端口地址。
由中断号确定相应中断向量及OCW1、OCW2命令字。
ANDAL,0F7H;
显示字符'
7'
这次试验让我对中断有了更深的理解,在理论课上学了中断,也知道中断是怎么运行的,但还不是特别了解它具体执行环境和要求,在计算机CPU运行一个任务时突然来了一个中断,根据编写的程序可以写出中断源,中断服务程序以及现场和断点的保护,在中断来的时候CPU会停止现有任务转去执行中断所要求的任务,这就好比当我很忙时,又有一个很重要的任务需要我处理。
通过这次试验我对书本的知识有了更深的体会和理解,也对中断这一概念有了自己的理解。
8254定时/计数器应用实验日志
祝家钰实验时间:
第13周星期四7-8节
实验室S318
8254定时/计数器应用
掌握8254的工作方式及应用编程。
掌握8254的典型应用电路的接法。
学习8254在PC系统中的典型应用方法。
1.复习8254的工作原理、六种工作方式各自的特点。
2.复习8254的控制字格式、读/写操作方式以及如何进行初始化编程等。
3.仔细阅读实验原理、说明、示例程序,掌握8254多个方向的应用设计方法及电路连接方式。
根据自选实验内容,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。
5.【示例】计数应用实验:
编写程序,应用8254的计数功能,用开关模拟计数。
使每当按动开关KK1五次后,产生中断,并在屏幕上显示一个字符”M”。
6.定时应用:
自己编写程序,应用8254的定时功能,将屏幕设计为一个秒表。
7.电子发声:
自己编写程序让实验装置上的扬声器和PC机上的扬声器唱歌。
1、确定8254端口地址
执行PCI_BIOS.EXE,获取实验用PCI总线扩展卡分配的地址空间及中断请求线。
确定8254芯片所使用的端口地址:
本系统中I/O部分实验使用的是PCI总线扩展卡申请的第三个I/O空间(即BASE2,假设为0C000H)。
各I/O接口芯片的端口地址定义为:
BASE2的首地址+各端口的偏移地址
8254端口的偏移地址定义为:
计数器0:
40H计数器1:
41H计数器2:
42H控制端口:
43H
CPU访问8254端口地址为:
计数器0:
0C040H计数器1:
0C041H
计数器2:
0C042H控制端口:
0C043H
2、计数应用实验
编写程序,将8254的计数器0设置为方式3,计数值为十进制5,用微动开关KK1作为CLK0时钟,OUT0连接IRQ,每当KK1按动5次后产生中断请求,在中断服务程序中完成屏幕上显示字符”M”。
参考接线图如图13-5所示。
实验步骤如下:
执行PCI_BIOS.EXE文件,确定实验装置中8254的各端口地址。
按实验内容编写程序(参考程序见后),编译、连接,生成执行文件。
设计实验线路图,完成线路连接。
打开实验箱电源,运行程序,按动KK1微动开关,观察是否按动5次后屏幕显示字符”M”。
分析该程序结构,理解如何对8254初始化,如何实现中断服务。
修改计数初值,从而实现不同要求的计数。
13-5
3、定时应用实验——秒表的设计
设计思想:
每计时1秒,描述时间的变量就应加1,并且每计时60秒自动归零。
因此,可利用8254的计数器0设置为方式2,用实验箱提供的信号源10KHZ作为CLK0时钟,计数值为十进制0(即最大计数值10000),这样每隔1秒就会在OUT0端产生0到1的跃变,该信号接IRQ作为中断请求。
在中断服务程序中完成对时钟的修改及显示。
根据设计思想,设计实验线路图,完成线路连
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理实验报告常作震 0803 微机 原理 实验 报告 常作震