




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机实验心得体会【篇一:微机原理实验报告】一、实验目的1. 掌握 qtspim 的调试技术2. 了解mips汇编语言与机器语言之间的对应关系3. 掌握mips汇编程序设计4. 了解c 语言语句与汇编指令之间的关系5. 熟悉常见的mips 汇编指令6. 掌握程序的内存映像二、实验任务用汇编程序实现以下伪代码:要求采用移位指令实现乘除法运算。int main()7. int k, y ;int z50 ;8. = 56;for(k=0;k50;k+)zk = y - 16 * ( k / 4 + 210) ;三、实验要求1. 完成汇编语言程序设计、调试、测试全过程2. 指出用户程序的内存映像,包括
2、代码段和数据段3. 完成软件实验报告四、实验过程程序源代码:.data # 定义用户数据段z:.space 200.textmain:la $s0,z #$s0=addrzli $t0,0 #$s1=k=0li $t1,56 #$s2=y=56loop:slti $t2,$t0,50 # 判断 k 是否小于50beq $t2,$0,done # 当 k 大于等于50 时跳转srl $t3,$t0,2 #k/4addi $t3,$t3,210 #k/4+210sll $t3,$t3,4 #16*(k/4+210)sub $t3,$t1,$t3 #y-16*(k/4+210)sw $t3,0($s
3、0) # 写进 zkaddi $s0,$s0,4 # 地址移一位addi $t0,$t0,1 #k 加 1j loop # 循环done:li $v0 10syscall五、实验总结通过这次实验,加深了我对理论学习的代码书写规范的理解,练习了 qtspim 软件的使用,对以后的学习有很大的帮助。这次实验的内容相对比较简单,原理容易理解,编译的过程中遇到了一点困难,不过在同学的帮助下顺利解决了。【篇二:微机原理与接口技术实验总结】微机原理与接口技术实验总结11107108 徐寒黎一、 实验内容以及设计思路1、试编写一程序,比较两个字符串stringl、string2所含字符是否相同,若相同输出“
4、 match”, 若不相同输出“ no match”。设计思路:定义一个数据段,在数据段中定义两个字符串作为string1 、 string2 以及几个用于输入提示的和输出所需内容的字符串,定义一个堆栈段用于存放,定义代码段。关键步骤以及少量语句:第一步将string1 和 string2 都实现用键盘输入,方法是mov dx,offset string2mov ah,0ah并且显示在显示器上,显示方法将0ah 改成 09h ,语句与上面类似。然后进行比较第一个单元,mov al,string1+1cmp al,string2+1jnz nomatch若字符串长度不等,则直接跳转,输出输出“
5、no match ”;若长度相等再逐个比较lea si,string1+2lea di,string2+2mov cl,string1+1mov ch,0 cldrepe cmpsbjcxz match ,意思是全部相同就跳转match ,输出“match";不然进入下面的nomatch 。退出。试编写求级数1八3+2八3 +3八3 .前几项和刚大于10000的程序。设计思路:原先编写的程序,设定和为10000 ,结果是14。但要求高一点的话,可以自己设置,实现用键盘输入和的值。一个难点是将输入的ascii 码字符串,转换成与之相同的十进制数的数值。关键的思路部分是:从1 开始求级数
6、,将和的值存在ax 里,要加下一项级数前,比如这时已经加到4, push 一下ax,然后将5乘三遍,将乘积mov 到 bx 里,再 pop ax ,然后将bx 的值加到ax里,然后将ax 与 n 比较,如果比n 小就继续上述步骤,知道刚比n大就输出数字。试编写一程序,完成字符串中各字符出现频度的统计,统计结果在屏幕上输出。设计思路:因为这个程序需要统计所有的字符,所以首先要定义一个存储区,用来存放26 个字符以及每个字符出现的个数。用键盘控制输入字符串以后,将字符串的第一个字符与这二十六个字符逐个比较,若有相同,在存放相应次数的存储单元的值上加1 。然后比较第二个字符,依次类推,将字符串里的字
7、符全部比较完。将个数大于 1 的字符以及字符的个数都输出到屏幕上。退出语句。缺点和不足:这样需要定义一个非常繁的存储区。可以根据输入的字符,然 后进行比较和统计。设计一个动画程序。设计思路:这个程序参考了网上的资料,没有什么新意,是小鸟的图形,可以用上下左右键进行移动,可以退出。步骤:首先设置堆栈段,数据段,代码段,设置显示方式等一些属性,设置背景色,设置小鸟的初始位置以及写出小鸟图形的像素的点。功能性的语句是,用键盘接受一个输入,将其与1bh 比较,用jz 语句跳转到退出。若不是便与48h 比较,看是否为向上,是则跳转到相应语句,不是则继续与50h 比较;,看是否向下,是则跳转到关于向下移动
8、的相关语句,否则再与4bh 比较,看是否向左,依次类推,根据键盘输入的上下左右跳转到不同的语句。再将小鸟的位置进行与上下左右键的输入相应的移动。最后编写好退出语句。2 、硬件接口主要是了解8255 与 8253 的功能,以及控制字。 i/o 地址译码只要对硬件概念清晰,很简单的。基本上没有什么创造性。收获:熟悉实验箱结构,了解每部分元件和标注的意义。掌握 i/o 地址译码电路的工作原理。可编程定时器82531 ,对照实验电路图,将计数器0 设置为方式0,即数初值设为n(n0fh) ,用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并用逻辑笔观察out0 点平变化。2,将计数器0、计数器1 分别
9、设置为方式3,计数初值设为1000用逻辑笔观察out1 输出电平的变化。收获:掌握8253的基本工作原理和编程方法并行接口82552 ,试验电路如图所示,8255c 口接逻辑电平开关k0k7 , a 口接led 显示电路l0l7 。 3,数码管静态显示:按下图接好电路,将8255a 口 pa0pa6 分别与七段数码管的段码驱动输入端ag 相连,位码驱动输入端si接5v (选中),s0和dp接地(关闭)。编程从键盘输入一位十进制数(0-9),在七段数码管上显示。4 ,数码管动态显示:按下图接好电路,七段数码管的连接不变,位码驱动输入端s1 、 s0 接 8255 c 口的 pc1 和 pc0 。
10、编程在两个数码管上显示“ 56”。动态显示时,先送“ 5”的段码送a 口,再送02h 到 c 口为位码;经一定延时后,送“ 6”的段码送a 口,再送01h 到 c 口为位码。循环完成,可以显示数码。5 ,数码管动态显示(选做):同图接好电路,编程在两个数码管上显示循环显示“00-99”。 只要搞清楚各个口的地址,以及选择适当的控制字,其实很简单的。收获:掌握8255 的基本工作原理和编程方法,对方式0 的认识加深了。二、 试验中遇到的问题1 在编写程序时,我深深体会到,画程序框图的重要性,每一步跳转的条件一定要搞清楚,y 和 n 不能搞反了,否则就错了。2 实验2,里面涉及的寄存器很多,很容易
11、就会用乱了,还是很需要注意的。3 比如那个小鸟动画的题目,当时在控制左右移动的时候,选择的起始位置的语句没写对位置,每次按一个移位的键以后,都从最初的初始位置向某个方向移动。4 硬件方面的,一开始没搞懂地址什么意思,所以连线时很懵懂,后来清楚了,发现就没什么了。三、心得感受微机原理与接口技术的课程实验历时大半个学期,通过自己编写、运行程序,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高
12、。前四个简单程序设计,加深了我们对初学的汇编语言指令的熟悉和理解,汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。不仅巩固了书本所学的知识,还具有一定的灵活性,发挥了我们的创造才能。后面几个实验是并行输入输出接口8255 和计数器8253 的功能的操作,加深了我们对硬件的熟悉,锻炼了动手能力,发挥创造才能。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立
13、思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在自己的思考以及和同学的讨论中,终于迎刃而解。【篇三:汇编语言实验心得】一实验内容1 .debug 的启动及其基本命令的使用2. 内存操作数与寻址方式1)利用debug程序中的“e命令,将两个多字节数“12345678h”和fedcba98h ”分别送入起始地址为 ds:0200h 和 ds:0204h 两个单元中。2)分别用直接寻址方式和寄存器
14、间接寻址方式编写程序段,实现将ds:0200h 单元和 ds:0204h 单元中的数据相加,并将运算结果存放在 ds:0208h 单元中。3. 顺序程序设计x 、 y 、 z、 v 均为字变量,在x、 y、 z、 v 字单元中存放是16 位带符号数。试编写汇编语言程序完成以下功能:计算表达式值(v-(x*y+z-720 ) ) /x;将上述表达式运算结果整数放在sum1 单元,余数放在sum2 单元。4. 分支程序设计1)设 x, y 为字变量,假定不溢出,计算x=|x-y| 。2)将num单元中的一位十六进制数(09, af),转换为对应的 ascii 码值存入asc 单元。3)已知字节变量
15、x,编程求下列表达式即:当 x0当 x=0当 x05. 循环程序设计1)定义 10 个字节型带符号数,求其和。2)在内存单元data 中定义一个16 位数,统计其16 位中 1 的个数,存入内存的字单元count 。3)定义 10 个字型无符号数,编写程序求其最小值。6. 子程序设计1)设计一个子程序,计算1+2+?+n ,其中 n 为给定的正整数,且n小于100 。2)定义 10 个字型带符号数,编写子程序求其最大值和统计正数的个数。3)从键盘接收4 位十进制数,将其转换为十六进制数并显示。二 . 实验心得上学期学习计算机组成原理的时候就对汇编有所了解,但通过这学期的学习,使我更加深入了解了
16、其知识体系和计算机组成及内部程序执行的原理。对于各命令的熟练掌握后,自己亲自动手实验更是体会到了各命令的用途及执行的方法。通过各个基本命令可以轻松更改计算机内部寄存器的值和读写内存,磁盘,i/o 端口的值,通过更改观察其对计算机的影响变化。对于汇编语言的寻址方式,更是多种多样,通过对各寻址方式的比较,可以感受到各寻址方式的不足与好处,还有是对各寻址方式的注意事项,有的寻址方式需专用的寄存器,有的寄存器是禁止使用的,然而有的就开放的多,对寄存器没有特殊要求,然而在编程过程中使用较为合适的寻址方式是提高程序运行效率的保障,在对寄存器中的值做运算时要正确书写各值,在x86 中只支持十六进制数,在运算结束后值得保存也是很重要的,不能随意保存。写数据传送指令时,目的操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级数学北师大版上册第6章《普查和抽样调查》教学设计教案
- 2024北京上庄燃气热电有限公司招聘生产管理部热控主管笔试参考题库附带答案详解
- 第13课 现代战争与不同文化的碰撞和交流 教学设计-2024-2025学年高二历史统编版(2019)选择性必修3 文化交流与传播
- 第13课 忠诚卫士-红外传感器和计数器的应用 教学设计 -2023-2024学年粤教清华版初中信息技术九年级下册
- 山东省聊城市2023-2024学年高二上学期11月期中考试地理试题(解析版)
- 19“设计研学旅行方案”(教学设计)2024-2025学年初中物理项目化课程案例
- 浙教版高中信息技术必修1教学设计-3.3 多媒体信息处理
- 2025年抗蛇毒血清合作协议书
- 2025年湖北工程职业学院单招职业技能测试题库完美版
- 2025年贵州电子科技职业学院单招职业适应性测试题库一套
- 开心麻花《白蛇前传》剧本
- 常州市旅游资源调查与评价
- 中职物理课件
- 分子生物学课件:绪论-细胞生物学发展简史
- 光伏支架安装工程质量验收记录完整
- 波普解析PPT质谱教案资料
- YS/T 431-2000铝及铝合金彩色涂层板、带材
- 球墨铸铁管安装规范及图示课件
- ERCP讲义教学课件
- 《人类行为与社会环境》课件
- 霍乱病例分析课件
评论
0/150
提交评论