收藏 分享(赏)

川大计算机综合实践报告.doc

上传人:精品资料 文档编号:10008312 上传时间:2019-09-27 格式:DOC 页数:24 大小:149.70KB
下载 相关 举报
川大计算机综合实践报告.doc_第1页
第1页 / 共24页
川大计算机综合实践报告.doc_第2页
第2页 / 共24页
川大计算机综合实践报告.doc_第3页
第3页 / 共24页
川大计算机综合实践报告.doc_第4页
第4页 / 共24页
川大计算机综合实践报告.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、四川大学网络教育学院(网络教育)计算机综合实践校外学习中心: 厦门 学院 学 生 姓 名: 专 业: 电气工程及其自动化 层 次: 专 升 本 年 级: 2017 年秋 学 号: 实 践 时 间: 2019 年 3 月 4 日 实验一 DEBUG 调试工具熟悉、使用一、 实验题目 熟悉、使用 DEBUG 调试工具 二、 实验目的1. 了解并逐步熟悉汇编语言的编辑方法及特点.2. 复习 8088 汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。3. 掌握汇编语言的编辑、汇编及连接的过程。4. 了解并逐步掌握运用 DEBUG 进行调试汇编语言程序。5. 借助 DEBUG 调试工具来发现汇编

2、语言程序的错误所在并加以改正。三、 实验内容:1、 进入 DEBUG方法 1:在 Windows 开始菜单中单击运行命令,直接在运行对话框中输入“DEBUG“方法 2:在运行对话框中输入“CMD“启动 DOS 命令窗口后输入“DEBUG“方法 3:在程序、附件、命令提示符,启动 DOS 命令窗口后输入“DEBUG“2、DEBUG 命令格式DEBUG 的每个命令都是一个字母,后跟一个或多个参数。下面对DEBUG 命令作几点说明。字母不分大小写。只使用 16 进制数,且不能带后缀 H。以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数值之间是必须的。可以用 Ctrl-C 或 Ctrl-Brea

3、k 终止命令的执行。若输入的命令有语法错误,则提示“Error”,并用“”指出错误位置。 3、 常用的 Debug 功能用 Debug 的 R 命令查看、改变 CPU 寄存器的内容; 用 Debug 的 D 命令查看内存中的内容; 用 Debug 的 E 命令改写内存中的内容; 用 Debug 的 U 命令将内存中的机器指令翻译成汇编指令; 用 Debug 的 T 命令执行一条机器指令 用 Debug 的 A 命令以汇编指令的格式在内存中写了一条机器指令 4、 用 Debug 的 R 命令查看、改变 CPU 寄存器的内容;R 命令用来显示和修改寄存器的值,包括以下两种格式。(1) R显示所有寄

4、存器和 8 个标志位的值,并反汇编 CS:IP 所指的指令。(2) R显示指定寄存器的值,并等待用户键入新的值,按回车键结束 R 命令。5、 用 Debug 的 D 命令查看内存中的内容;D 命令可以查看内存中的内容,D 命令的格式较多,只介绍本次实验中用到的格式,8086/8088CPU 能够访问 1M 内容,D 命令可以显示 0000:0000H-FFFF:FFFFH 中的任何一个单元的内存如果想知道内存 10000H 处的内容,可以用“d 段地址:偏移地址“的格式来查看,如输入-d 1000:0使用 d 1000:9 查看 1000:9 处的内容。使用 d 1000:0 9 查看 100

5、0:0-1000:9 的内容一进入 Debug,可直接使用 D 命令直接查看,将列出 Debug 预设的地址处的内容6、 用 Debug 的 E 命令改写内存中的内容; 使用“e 起始地址 数据 数据 数据.“的格式来进行如将内存 1000:0-1000:9 单元中的内容分别写为0、1、2、3、4、5、6、7、8、9-e 1000:0 0 1 2 3 4 5 6 7 8 9也可以采用提问方式一个一个修改内存中的内容,如输入 e 1000:0,按 Enter 键 输入修改的数据,再按空格键输入下一个要修改的数据,最后 Enter 键结束操作。输入字符串的格式:如-e 1000:10 1 a 2

6、“c+“ 3 “IBM“将输入 1 a 2 c+ 3 IBM 到相应单元向内容中写入机器码,如 b80100 (代表 mov ax, 0001), b90200(代表 mov cx, 002), 01c8(代表 add ax, cx),那么输入-e 1000:0 b8 01 00 b9 02 00 01 c8 就将该程序输入内容1000:0 处,然后使用 u 命令-u 1000:0 可以将内存单元中的内容翻译成汇编指令。如果要执行该程序,首先用 r 命令将 cs 修改成 1000,ip 修改成 0,再执行 t 命令,单步执行程序。执行 T 命令时,CPU 执行 CS:IP 执行的指令并将 IP

7、 加 1.7、 用 Debug 的 A 命令以汇编指令的形式在内存中写了机器指令示例:用 A 命令,输入下列程序并运行-a 1000:0mov ax, 1mov bx, 2mov cx, 3add ax, bxadd ax, cxadd ax, ax直接按 Enter 键结果输入。用 r 命令将 cs 修改成1000,ip 修改成 0,再执行 t 命令,单步执行程序。执行 T 命令时,CPU 执行 CS:IP 执行的指令并将 IP 加 1.实验二 设计汇编语言程序一 实验题目 设计汇编语言程序二 实验目的字符串统计程序设计双字乘法程序设计三 实验内容1 字符串统计。在数据段中建立一个缓冲区 B

8、UFFER,变量 VER,编程使得程序具有如下功能:从键盘输入一个子字符串存入 VER,从键盘输入包含一个或几个子字符串的字符串存入 BUFFER。统计 BUFFER 中的字符串含有多少个子字符串以及每个子字符串的位置。2 双字乘法程序。设计一个程序实现 32 位带符号双精度数乘法运算。由于只有8 位和 16 位的乘法指令。因此 32 位乘法运算是不能直接用指令实现的。但可以用 16 位乘法指令,通过 4 次想乘然后把部分积想加。对于带符号数,可以先根据绝对值求得积。然后判断积的符号,若积为负数,应将其用补码表示。四、 程序设计1、字符串统计程序设计#includeusing namespac

9、e std;int main()char a;int b=0,c=0,d=0,e=0,f=0;cout=128)b+;else if(a=a outb(inb_p (0x21) /允许接收定时器中断 void do_timer(void) 这是定时器主程序,用于每隔一段时间后进行某些操作 8253.asm: /以下是 nasm 格式的汇编代码,这个中断处理函数必须用汇编 timer_interrupt: push gs push fs push es push ds push ebp push edi push esi push edx push ecx push ebx push eax ;

10、如果你不在操作系统下使用,以下三行必须删除,否则必须把 0x10更改为内核段选择符mov eax,0x10 mov ds,ax mov es,ax mov al,0x20 out 0xa0,al ;发送 EOI out 0x20,al call do_timer pop ebx pop ecx pop edx pop esi pop edi pop ebp pop ds pop es pop fs pop gs xor eax,eax iretd实验四 实时时钟实验1、实验目的:掌握 ARM7 嵌入式系统实验箱的使用方法;掌握 LPC2148 的内部定时器模块的使用方法;掌握 LPC2148

11、的 RTC 模块的使用方法。2、实验内容:学习使用 LPC2148 的内部定时器以及 RTC 模块;自行编程实现利用 RTC 模块在串口调试助手上显示当前时间,自行编程实现利用定时器模块在串口调试助手上显示 9-0 的倒计时,间隔 1S3、实验原理:1、定时器模块:对 TOTC 设置,即设置定时器的值,TOPR,设置预分频值,TOMCR 设置匹配模式,复位并中断,TOMR,设置匹配值,TOTCR,启动寄存器。2、RTC 模块。设置 RTC 基准时钟分频器。初始化 RTC 时钟值,如 year,month。报警中断设置,如 CIIR,AMR 等。启动 RTC,即CCR 的 CLKKEN 位置位。

12、读取完整时间寄存器值或等待中断。四、实验步骤:1.在 D:ARM7_ToolDebug_ToolR340 安装 RTC 驱动;2.打开对应的 IAR 工作空间 RS232_SMG;3.修改主程序使其达到实验内容的要求并仿真直至程序无误;4.将程序烧入试验箱中,运行;5.打开 D:ARM7_ToolDebug_Tool串口调试助手 V2.2 6.我的电脑-管理-设备管理器-端口(com 和 lpt)-观测串口号com4,修改串口调试助手对应的串口号,选择十六进制发送,手动发送。五、实验程序:RTC 实时时钟:#include“includes.h“#include#include#define

13、UART_BPS 9600uint8 strymd16=“ “;uint8 strhms16=“ : : “;void DelayNS(uint32 dly)uint32 i;for(;dly0;dly-);for(i=0;iyear = YEAR;d-mon = MONTH;d-day = DOM;t-hour = HOUR;t-min = MIN;t-sec = SEC;void timefuz(struct DATE *d,struct TIME *t)strymd0=d-year/1000+0;strymd1=d-year/100%10+0;strymd2=d-year/10%10+0

14、;strymd3=d-year%10+0;strymd5=d-mon/10+0;strymd6=d-mon%10+0;strymd8=d-day/10+0;strymd9=d-day%10+0;strhms0=t-hour/10+0;strhms1=t-hour%10+0;strhms3=t-min/10+0;strhms4=t-min%10+0;strhms6=t-sec/10+0;strhms7=t-sec%10+0;int main(void)RTCIni();struct DATE *d;struct TIME *t ;d = (struct DATE*)malloc(sizeof(s

15、truct DATE);t = (struct TIME*)malloc(sizeof(struct TIME);while(1)while(T0IR T0IR = 0x01;GetTime(d,t);timefuz(d,t);UART0_SendStr(strymd);UART0_SendStr(strhms); free(d);free(t);return 0;TIMR 显示 0-10 秒void Time0Init(void)T0PR = 99;T0MCR = 0x03;T0MR0 = 110592;T0TCR = 0x03;T0TCR = 0x01;int main(void)Time

16、0Init();uint8 Char = 9;while(1)while(T0IR T0IR = 0x01;UART0_SendByte(Char);Char-;if(Char =/)Char = 9; return 0;实验五 8255 并行接口键盘实验一、 实验目的和要求1. 学习利用并行接口芯片 8255 构成并行接口电路的基本方法。2. 熟悉掌握并行接口芯片 8255 的基本性能及在实际应用中硬件连接、初始化编程方法。二、 实验内容编写程序,使 8255 的 219 口为输出口,218 为输入口,从 218口将 K0K7 作为一个字读入,再从 219 口输出这一反码字节。三、 实验算法

17、先初始化 8255,将 219 口设置为输出口,218 为输入口;再通过输入指令从 8255 的 218 口读入数据;最后通过输出指令将数据从 8255 的 219 口输出,在灯上显示出来。四、实验电路图电路图如下所示:五、程序清单CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BH ; 初始化 8255MOV AL,90HOUT DX,ALBG: MOV DX,218H ;从 8255 的 218 口(即 A 口)读入数据IN AL,DX ;数据存放到 AL 里MOV DX,219H ;从 8255 的 219 口(即 B 口)输出数据OUT DX,ALJM

18、P BG ;无限循环输入输出CODE ENDSEND START六、实验现象、结果与分析随意扳动 K0,218 口接收输入的数据,219 口输出相应的数据到 L0L7,使对应指示灯亮。七、实验体会通过本实验了解 8255 的工作特性,初步知道了怎么用 8255 进行编程控制。八、主要仪器设备计算机、接口实验箱平台实践体会本次计算机综合实践,使我对微机原理及接口技术有了进一步的了解。原来并不太清楚是什么意思,一直都很模糊,听课本也是很迷茫;而之前的那些单元实验,也没有都做好。之前做的实验,由于大部分是验证性的,所以就很被动地去做,甚至并没有想为什么要那样连电路,内部的代码更没有认真看。这次课程设

19、计,因为要自己去设计整个过程,所以就不得不去了解学习自己原来并没有真正弄懂的东西。比如一些程序的代码的意思,汇编语言的逻辑,比如一些芯片的用途。使我对前面所做的实验有了原理性的了解,回头看一些实验,也知其然其所以然了。同时对课本上讲的一些内容,不再像以前那样觉得抽象,通过这次设实践,有了具体的理解。同时,我也知道了设计一个项目,应该如何下手。应该先对项目要求有个全面的了解,知道要做什么,然后根据要求所要涉及到的知识我们要主动去摄取,结合自己已学过的,再对整体框架有个感知,心里有数后,进行设计。设计时用流程图,这很重要,这样整个思路就很清晰,而且是按照软硬件语言的逻辑顺序进行,就很方便。设计过程可以分模块,不要一开始就想把所有的功能都实现了,应该一个模块一个模块地实现,再总的连起来,实现最后的总模块。在每个模块设计时,尽量想到比较简单的设计,简化编程和电路,也可少出错。对微机是这样,对其他的像数字系统设计,也是一样的。因此,我也觉得微机实验的这种形式的课程设计是很好也很有必要的。对我们对微机实验的理解有很大帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报