计算机综合实践.doc_第1页
计算机综合实践.doc_第2页
计算机综合实践.doc_第3页
计算机综合实践.doc_第4页
计算机综合实践.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档四川大学网络教育学院计算机综合实践校外学习中心: 苏州研究院 学 生 姓 名: 徐磊 专 业: 电气工程及其自动化 层 次: 专升本 年 级: 2014级(秋季) 学 号: DH1142R6009 实 践 时 间: 2016年7月10日 实验一 DEBUG调试工具熟悉、使用一、实验题目:熟悉、使用DEBUG调试工具二、实验日期:2016/08/5三、实验目的1,了解并逐步熟悉汇编语言的编辑方法及特点. 2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。3.掌握汇编语言的编辑、汇编及连接的过程。4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。5借助DEBUG调试工具来发现汇编语言程序的错误所在并加以改正。四、实验内容:1进入DEBUG方法方法1:在Windows开始菜单中单击运行命令,直接在运行对话框中输入DEBUG 方法方法2:在运行对话框中输入CMD启动DOS命令窗口后输入DEBUG 方法3:在程序、附件、命令提示符,启动DOS命令窗口后输入DEBUG 2,DEBUG命令格式DEBUG的每个命令都是一个字母,后跟一个或多个参数。下面对DEBUG命令作几点说明。字母不分大小写。 只使用16进制数,且不能带后缀H。以空格或逗号作为命令各项之间的分隔符。分隔符只在两个数值之间是必须的。可以用Ctrl-C或Ctrl-Break终止命令的执行。若输入的命令有语法错误,则提示“Error”,并用“”指出错误位置。3,常用的Debug功能用Debug的R命令查看、改变CPU寄存器的内容,用Debug的D命令查看内存中的内容,用Debug的E命令改写内存中的内容,用Debug的U命令将内存中的机器指令翻译成汇编指令。用Debug的T命令执行一条机器指令 用Debug的A命令以汇编指令的格式在内存中写了一条机器指令 4,用Debug的R命令查看、改变CPU寄存器的内容,R命令用来显示和修改寄存器的值,包括以下两种格式。1,R 显示所有寄存器和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查看1000: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 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修改成1000ip修改成0,再执行t命令,单步执行程序。执行T命令时,CPU执行CS:IP执行的指令并将IP加1.7、用Debug的A命令以汇编指令的形式在内存中写了机器指令示例,用A命令,输入下列程序并运行 -a 1000:0 mov ax, 1 mov bx, 2 mov cx, 3 add ax, bx add ax, cx add ax, ax 直接按Enter键结果输入。用r命令将cs修改成1000,ip修改成0,再执行t命令,单步执行程序。执行T命令时,CPU执行CS:IP执行的指令并将IP加1.实验二 设计汇编语言程序一, 实验题目 设计汇编语言程序二, 验日期:2016/08/6三, 实验目的字符串统计程序设计双字乘法程序设计四, 实验内容1,字符串统计。 在数据段中建立一个缓冲区BUFFER,变量VER,编程使得程序具有如下功能,从键盘输入一个子字符串存入VER,从键盘输入包含一个或几个子字符串的字符串存入BUFFER。统计BUFFER中的字符串含有多少个子字符串以及每个子字符串的位置。2,双字乘法程序。设计一个程序实现32位带符号双精度数乘法运算。由于只有8位和16位的乘法指令。因此32位乘法运算是不能直接用指令实现的。但可以用16位乘法指令,通过4次想乘然后把部分积想加。对于带符号数,可以先根据绝对值求得积。然后判断积的符号,若积为负数,应将其用补码表示。五,程序设计 1、字符串统计程序设计 #includeusing namespace std; int main() char a;int b=0,c=0,d=0,e=0,f=0; cout请输入一行任意字符:; a=cin.get(); while(a!=n) if(a=128) b+; else if(a=a&a=A&a=0&a=9) else f+; a=cin.get(); cout总共有b/2+c+d+e+f个字符:endl; cout中文t英文t空格t数字t其他endl; coutb/2tctdtetf8,0x40); outb(inb_p (0x21) & 0x01, 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 如果你不在操作系统下使用,以下三行必须删除,否则必须把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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论