微机原理与接口技术实验报告心得_微型计算机原理与接口技术第二版

微机原理与接口技术实验报告心得_微型计算机原理与接口技术第二版微机原理与接口技术实验总结寒黎实验内容以及设计思路1、=1\*GB3①试编写一程序,比较两个字符串STRING1、STRING2 所含字符是否相同,若相同输出“MATCH”,若不相同输出“NOMATCH”。设计思路:定义一个数据段,在数据段中定义两个字符串作为STRING1、STRING2以及几个用于输入提示的和输出所需内容的字符串,定义一个堆栈段用于存放,定义代码段。关键步骤以…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

微机原理与接口技术实验总结

寒黎

实验内容以及设计思路

1、 = 1 \* GB3 ①试编写一程序,比较两个字符串STRING1、 STRING2 所含字符是否相同,若相同输出“MATCH”,若不相同输出 “NO MATCH”。

设计思路:定义一个数据段,在数据段中定义两个字符串作为STRING1、 STRING2以及几个用于输入提示的和输出所需内容的字符串,定义一个堆栈段用于存放,定义代码段。关键步骤以及少量语句:第一步将STRING1和STRING2都实现用键盘输入,方法是

MOV DX,OFFSET STRING2

MOV AH,0AH

INT 21H

并且显示在显示器上,显示方法将0AH改成09H,语句与上面类似。

然后进行比较第一个单元,

MOV AL,[STRING1+1]

CMP AL,[STRING2+1]

JNZ NOMATCH

若字符串长度不等,则直接跳转,输出输出 “NO MATCH”;

若长度相等再逐个比较

LEA SI,[STRING1+2]

LEA DI,[STRING2+2]

MOV CL,[STRING1+1]

MOV CH,0

CLD

REPE CMPSB

JCXZ MATCH,意思是全部相同就跳转MATCH,输出“MATCH”;不然进入下面的NOMATCH。退出。

= 2 \* GB3 ②试编写求级数1^3+2^3 +3^3 …..前几项和刚大于10000的程序。

设计思路:原先编写的程序,设定和为10000,结果是14。但要求高一点的话,可以自己设置,实现用键盘输入和的值。

一个难点是将输入的ASCII码字符串,转换成与之相同的十进制数的数值。

关键的思路部分是:从1开始求级数,将和的值存在AX里,要加下一项级数前,比如这时已经加到4,PUSH一下AX,然后将5乘三遍,将乘积MOV到BX里,再POP AX,然后将BX的值加到AX里,然后将AX与N比较,如果比N小就继续上述步骤,知道刚比N大就输出数字。

= 3 \* GB3 ③试编写一程序,完成字符串中各字符出现频度的统计,统计结果在屏幕上输出。

设计思路:因为这个程序需要统计所有的字符,所以首先要定义一个存储区,用来存放26个字符以及每个字符出现的个数。用键盘控制输入字符串以后,将字符串的第一个字符与这二十六个字符逐个比较,若有相同,在存放相应次数的存储单元的值上加1。然后比较第二个字符,依次类推,将字符串里的字符全部比较完。将个数大于1的字符以及字符的个数都输出到屏幕上。退出语句。

缺点和不足:这样需要定义一个非常繁的存储区。可以根据输入的字符,然后进行比较和统计。

= 4 \* GB3 ④设计一个动画程序。

设计思路:这个程序参考了网上的资料,没有什么新意,是小鸟的图形,可以用上下左右键进行移动,可以退出。

步骤:首先设置堆栈段,数据段,代码段,设置显示方式等一些属性,设置背景色,设置小鸟的初始位置以及写出小鸟图形的像素的点。功能性的语句是,用键盘接受一个输入,将其与1bh比较,用JZ语句跳转到退出。若不是便与48h比较,看是否为向上,是则跳转到相应语句,不是则继续与50h比较;,看是否向下,是则跳转到关于向下移动的相关语句,否则再与4bh比较,看是否向左,依次类推,根据键盘输入的上下左右跳转到不同的语句。再将小鸟的位置进行与上下左右键的输入相应的移动。

最后编写好退出语句。

2、硬件接口主要是了解8255与8253的功能,以及控制字。

= 1 \* GB3 ①I/O地址译码

只要对硬件概念清晰,很简单的。基本上没有什么创造性。

收获:熟悉实验箱结构,了解每部分元件和标注的意义。

掌握I/O地址译码电路的工作原理。

= 2 \* GB3 ②可编程定时器8253

1,对照实验电路图,将计数器0设置为方式0,即数初值设为N(N<0fh),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并用逻辑笔观察OUT0点平变化。

2,将计数器0、计数器1分别设置为方式3,计数初值设为1000用逻辑笔观察out1输出电平的变化。

收获:掌握8253的基本工作原理和编程方法

= 3 \* GB3 ③并行接口8255

1,试验电路如图所示,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

3,数码管静态显示:按下图接好电路,将8255A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接5V(选中),S0和dp接地(关闭)。编程从键盘输入一位十进制数(0-9),在七段数码管上显示。

4,数码管动态显示:按下图接好电路,七段数码管的连接不变

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186918.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号