当前位置:文档之家› 微机原理分支结构实验报告

微机原理分支结构实验报告

微机原理实验报告

实验二分支程序的设计

一、实验目的

1.学习提示信息的显示及键盘输入字符的方法。

2.掌握分支程序的设计方法。

二、实验内容

在提示信息下,从键盘上输入原码表示的二位十六进制有符号数。

当此数大于0时,屏幕上显示此数为正数。

当此数等于0时,屏幕上显示此数为零。

当此数小于0时,屏幕上显示此数为负数。

三、实验原理

分支程序是程序通过判断和比较形成不同的逻辑框并产生相应的分支程序。

它的结构有两种:一种是二分支,一中是多分支。

它们的共同特点是:运行方向总是向前的,在某种确定条件下,只能执行多个分支中的一个分支。

四、程序流程

CRLF MACRO

MOV AH,02H

MOV DL,0DH

INT 21H

MOV AH,02H

MOV DL,0AH

INT 21H

ENDM

DATA SEGMENT

MESS1 DB'INPUT DATA',0DH,0AH,'$'

MESS2 DB'THIS DATA IS +',0DH,0AH,'$'

MESS3 DB'THIS DATA IS -',0DH,0AH,'$'

MESS4 DB'THIS DATA IS 0',0DH,0AH,'$'

DATABUF DB 3

ACTLEN DB ?

STRING DB 3 DUP(?)

DATA ENDS

SSEG SEGMENT PARA STACK'STACK'

DB 50 DUP(0)

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:SSEG,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV AX,SSEG

MOV SS,AX

MOV DX,OFFSET MESS1

MOV AH,09H

INT 21H

MOV AH,0AH

MOV DX,OFFSET DATABUF

INT 21H

CRLF

MOV AL,STRING

CMP AL,38H

JAE CIRA

MOV AL,STRING+1

CMP AL,30H

JNE CIRB

MOV DX,OFFSET MESS4

MOV AH,09H

INT 21H

JMP BOT

CIRA:

MOV DX,OFFSET MESS3

MOV AH,09H

INT 21H

JMP BOT

CIRB:

MOV DX,OFFSET MESS2

MOV AH,09H

INT 21H

JMP BOT

BOT:

MOV AX,4C00H

INT 21H

CODE ENDS

END START

五、程序调试

查看结果:

DEBUG调试

调试结果图上图,程序顺利运行,结果正确。改变数值依旧运算正确。

8086微机原理实验报告

8086微机原理实验报告 实验名称:8086微机原理实验 实验目的: 1.深入了解8086微处理器的内部结构和指令系统。 2.掌握汇编语言的编程方法和技巧。 3.熟悉微机系统的输入输出操作原理。 4.掌握8086微机系统的调试方法和程序调试技巧。 实验器材: 1.8086微处理器芯片 2.Intel 8086学习板 3.编程器 4.示波器 5.实验箱 实验步骤: 1.熟悉8086微处理器的内部结构和指令系统 在开始实验前,首先需要熟悉8086微处理器的内部结构和指令系统。 通过阅读教材和讲义,了解到8086微处理器采用16位结构,具有4个寄存器组,支持16种不同寻址方式的指令。熟练掌握常用的指令系统和汇编语言的编程方法。 2.设计并编制简单的汇编程序 在熟悉8086微处理器的内部结构和指令系统后,我们开始设计并编制简单的汇编程序。本实验中,我们编写了一个简单的汇编程序,用于实现两个数的加法操作,并将结果存储在内存中。程序中使用了mov指令将操作数送入寄存器,add指令将它们相加,再用mov指令将结果存储到内存中。程序流程图如下所示:

a. 将第一个数送入累加器A中。 b. 将第二个数送入寄存器B中。 c. 执行add指令,将A和B相加,结果保存在A中。 d. 将结果存储到内存中。 e. 程序结束。 3.调试程序并进行测试 在完成汇编程序的编写后,我们需要使用调试器对程序进行调试,并进行测试。首先,将程序加载到学习板上进行调试。在调试过程中,我们使用示波器观察各个信号的波形,以确定程序的正确性。通过逐步单步执行程序并观察寄存器和标志位的变化,我们验证了程序的正确性。接下来,我们使用输入设备输入两个数,并观察输出结果是否正确。测试结果表明程序正确实现了两个数的加法操作。 4.总结体会和改进建议 通过本次实验,我们深入了解了8086微处理器的内部结构和指令系统,掌握了汇编语言的编程方法和技巧,熟悉了微机系统的输入输出操作原理,以及掌握了8086微机系统的调试方法和程序调试技巧。同时,通过实验过程中对问题的分析和解决,我们学会了如何排除故障和进行改进建议。 建议可以在以下几个方面进行改进:a.进一步学习其他指令系统和更复杂的汇编语言编程技巧;b.通过更多实验来掌握如何排除故障和进行改进建议; c参加相关比赛和项目实践,将理论知识应用于实际应用中。 结论: 本次实验达到了预期目标,深入了解了80位86微处理器的内部结构和指令系统,掌握了汇编语言的编程方法和技巧,熟悉了微机系统的输入输出操作原理及掌握了系统的调试方法和程序调试技巧通过这次实验课的学习为今后学习奠定了坚实的理论与实践基础收获了很多经验在今后学习和实际应用中应继续努力提高理论和

微机原理及应用的实验报告

微机原理及应用的实验报告 1. 实验介绍 在本次实验中,我们将学习微机原理及应用的基本知识,并通过实践来深入理 解和应用这些知识。本实验旨在让我们熟悉微机系统的原理、组成部分以及在实际应用中的一些常见问题和解决方案。 2. 实验目的 •了解微机系统的基本组成部分 •掌握微处理器的工作原理和操作方法 •学习使用汇编语言编写简单的程序 •熟悉实验中常用的开发工具和调试技术 3. 实验步骤 1.首先,我们需要了解微机系统的基本组成部分。微机系统主要由中央 处理器(CPU)、内存、输入输出设备和总线组成。其中,CPU是微机系统的核心部件,它负责执行程序的指令和处理数据。内存用于存储程序和数据,输入输出设备用于与外部环境进行数据交互,总线则负责连接各个部件之间的数据传输。 2.接下来,我们将学习微处理器的工作原理和操作方法。微处理器是 CPU的核心组成部分,它由运算器、控制器和寄存器组成。运算器负责执行 各种算术和逻辑运算,控制器负责控制程序的执行流程,寄存器用于保存指令、数据和中间结果。 3.在实验中,我们将学习使用汇编语言编写简单的程序。汇编语言是一 种低级语言,它与机器语言直接相对应。通过编写汇编程序,我们可以更加直观地了解指令的执行过程以及数据的处理方式。同时,在实验中我们还将学习如何使用调试工具对程序进行调试和测试。 4.最后,我们将熟悉实验中常用的开发工具和调试技术。在实验中,我 们将使用一些开发工具如汇编器、编译器和调试器来编写、编译和调试程序。 同时,我们还将学习如何使用逻辑分析仪和示波器等调试工具来对程序进行分析和验证。 4. 实验结果 通过本次实验,我对微机原理及应用有了更深入的了解。我学会了微机系统的 基本组成部分,了解了微处理器的工作原理和操作方法,并且能够使用汇编语言编写简单的程序。同时,我还熟悉了实验中常用的开发工具和调试技术,能够使用它

微机原理综合实验报告

滨江学院 微机原理综合实验 实验报告 学生姓名 学号 专业信息工程 班级2016级 二O一八年十二月三十日

微机原理综合实验 实验一利用DEBUG调试程序调试程序段 1、实验目的 1)熟悉DEBUG有关命令的使用方法。 2)利用DEBUG掌握有关指令的功能。 3)利用DEBUG运行简单的程序段。 2、实验内容 1)进入和退出DEBUG程序。 2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。 3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。 3、实验准备 1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。3)阅读将AX左移9位的程序段。 4、实验步骤 1)在DOS提示符下,进入DEBUG程序。 2)在DOS目录下启动DEBUG。 3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。 5、实验报告要求 1)如何启动和退出DEBUG程序。 2)整理每个DEBUG命令使用的方法,实际示例及执行结果。 3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现? 实验结果:

实验二分支程序实验 1、实验目的 1)掌握分支程序的设计方法。 2)掌握利用DEBUG修改参数、检查结果的方法。 3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。 2、实验内容 1)编写一个程序,显示AL寄存器中的两位十六进制数 2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z 或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。 3、实验准备 1)编写实验内容要求的两个程序。 2)写出调试以上程序,即修改程序参数,检查结果的操作方法。 3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。 4、实验步骤 1)用EDIT或其它编辑软件,编写.ASM源程序,例如HEXASC.ASM及DSPKEY.ASM。2)对其进行汇编及连接,产生.EXE文件。 13 3)对.EXE文件进行调试运行。 (1)用DEBUG调试运行,学会修改AL内容的方法。 (2)对DSPKEY.EXE键入不同的字符,分别进行调试。 (3)在MS-DOS下运行这两个.EXE文件。 5、实验报告要求 1)画出两个程序的流程图,若要独立编写程序,应列出相应的程序清单。 2)说明本实验是如何利用DEBUG进行调试的。 6、参考程序清单 1)显示AL中两位十六进制数程序: ;DISPHEX.ASM CODE SEGMENT ASSUME CS:CODE START: MOV AL,3EH MOV BL,AL MOV DL,AL MOV CL,4

微机实验心得体会

微机实验心得体会 【篇一:微机原理实验报告】 一、实验目的 1.掌握qtspim的调试技术 2.了解mips汇编语言与机器语言之间的对应关系 3.掌握mips汇编程序设计 4.了解c语言语句与汇编指令之间的关系 5.熟悉常见的mips汇编指令 6.掌握程序的内存映像 二、实验任务 用汇编程序实现以下伪代码:要求采用移位指令实现乘除法运算。 int main() { int k, y ; int z[50] ; y = 56; for(k=0;k50;k++) z[k] = y - 16 * ( k / 4 + 210) ; } 三、实验要求 1.完成汇编语言程序设计、调试、测试全过程 2.指出用户程序的内存映像,包括代码段和数据段 3.完成软件实验报告 四、实验过程 程序源代码: .data #定义用户数据段 z:.space 200 .text main: la $s0,z #$s0=addrz li $t0,0 #$s1=k=0 li $t1,56 #$s2=y=56 loop: slti $t2,$t0,50 #判断k是否小于50 beq $t2,$0,done #当k大于等于50时跳转 srl $t3,$t0,2 #k/4 addi $t3,$t3,210 #k/4+210

sll $t3,$t3,4 #16*(k/4+210) sub $t3,$t1,$t3 #y-16*(k/4+210) sw $t3,0($s0) #写进z[k] addi $s0,$s0,4 #地址移一位 addi $t0,$t0,1 #k加1 j loop #循环 done: li $v0 10 syscall 五、实验总结 通过这次实验,加深了我对理论学习的代码书写规范的理解,练习 了qtspim软件的使用,对以后的学习有很大的帮助。这次实验的内 容相对比较简单,原理容易理解,编译的过程中遇到了一点困难, 不过在同学的帮助下顺利解决了。 【篇二:微机原理与接口技术实验总结】 微机原理与接口技术实验总结 11107108徐寒黎 一、实验内容以及设计思路 1、①试编写一程序,比较两个字符串string1、 string2 所含字符 是否相同,若相同输出“match”,若不相同输出“no match”。 设计思路:定义一个数据段,在数据段中定义两个字符串作为 string1、 string2以及几个用于输入提示的和输出所需内容的字符串,定义一个堆栈段用于存放,定义代码段。关键步骤以及少量语句:第一步将string1和string2都实现用键盘输入,方法是 mov dx,offset string2 mov ah,0ah 并且显示在显示器上,显示方法将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]

微机原理实验4

实验四:分支、循环程序设计 一. 实验目的 1.学习分支程序、循环结构程序的设计和调试方法; 2.学习子程序的定义和调试方法; 3.掌握分支、循环、子程序等程序的基本结构。 二. 实验设备 TDN 86/51或TDN 86/88教学实验系统一台 三. 实验内容、步骤及要求 1. 设计一数据块间的搬移程序 数据块搬移的基本原则为: 对于两个分离的数据块,从首地址或从末地址开始传送均可。 对于有部分重叠的情况则: 当源数据块首地址>目的数据块首地址时,从数据块首地址开始传送数据。 当源数据块首地址<目的数据块首地址时,从数据块末地址开始传送数据。 2.求某数据区内负数的个数 设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。 3.学生成绩名次表 将分数为1~100之间的10个成绩存入首址为3000H的单元中,3000H+I表示学号为I的学生成绩。编写程序能在3100H开始的区域排出名次表,3100H+I为学号I的学生名次。 4. 求无符号字节序列中的最大值和最小值 设有一字节序列,其存储首地址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值和最小值。 四. 编程练习 (A) 在3500H单元开始中输入数据:09H(数据个数)12H、80H、78H、C8H、00H、00H、FEH、99H、34H,编写程序使其能分别求出数据区中的正数和负数以及零的个数,正数的个数放在3510H单元中,负数的个数放在3511H单元中,零的个数放在3512H单元中. (B) 有三个8位二进制数连续存放在03200H开始的内存单元中,设它们之中至少有两个数是相同的。编写程序找出与另外两数不同的数,把该数所在的地址(段内偏移地址)送到03204H单元,若三个数都相同则送0FFFFH到03204H单元。 (C) 设数据段SCORE单元开始连续存放着20个学生成绩,编写程序统计其中<60,60~69、70~79、80~89,>90分数段的人数,并把统计结果存放到从TOT开始的数据块中。 (数据为:64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H,4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H). (D) 找出一个数据块中的最大数。数据块从偏移地址3002H开始存放,数据块的长度以16位二进制形式存放在3000H、3001H单元,把找出的最大数放到3100H单元中,并把存放最大值的偏移地址存入3101H和3102H的存储单元中。假设数据块中的数都是8位无符号数。 (E) X的值(字节数)分别由3000H、3001H、3002H单元的数决定,对应的结果Y分别存放在3005H、3006H、3007H单元中,完成下列方程: A (X>0) Y= {0 (X=0)

分支与循环程序设计实验报告

分支与循环程序设计实验报告 姓名:李天初学号:5130309515 班级:F1303017 任课教师:庄天红 【实验目的】 掌握分支循环程序设计的方法,掌握, if-else,while, for 语 句的使用,掌握分支与循环语句的嵌套使用。 【实验内容】 设计一个猜数字游戏,游戏规则如下: 1、游戏开始,电脑随机生成三个不重复的十以内的数字。 2、玩家输入他所猜测的三个数字 3、将玩家提交的数与电脑生成的数进行比较,结果显示"*A*B"。A 代表位置正确数字也正确,B 代表数字正确但位置不正确,比如:"2A0B"表示您有 2 个数字的位置正确且数值也正确,除此以外,您还猜对了0 个数字,但位置不对。 4、玩家共有7 次机会,在7 次内,如果结果为“3A0B” 则游戏成功,退出游戏。如果7次里玩家都没有猜对游戏失败。 【实验环境】 操作系统:Windows8.1 编译器:Codeblocks13.12 【实验步骤】 #include #include #include

using namespace std; int main() {int i,j,k,m; int q[6]={0,0,0,0,0,0}; srand(time(NULL)); while (q[1]==q[2]||q[0]==q[2]||q[0]==q[1]) { q[0]=rand()%10;q[1]=rand()%10;q[2]=rand()%10; } for (m=0;m<7;++m){ cout<<"请输入你猜测的数字:"<>q[3]>>q[4]>>q[5]; k=(q[0]==q[3])+(q[1]==q[4])+(q[2]==q[5]);j=0; for (i=3;i<6;++i){ j=(q[i]==q[0])+(q[i]==q[1])+(q[i]==q[2])+j; } if (k!=3) {cout<

单片机-实验二-分支程序设计实验

实验二实验报告 ·

将00-99的十进制数据转换成二进制进行开关量的输入,L0灯亮 将100的十进制转换为01100010的二进制开关量进行输入,L1灯亮

将101-127的十进制转换为二进制进行开关量的输入,L2灯亮 完整的接线图

实验操作 1、正确连接实验板子和电脑,将点源接入,数据线连接到电脑的USB接口,在电脑端运行 软件,取消勾选模拟器,按照实验装置的名称正确的选择响应的系统。 2、在软件内部按照输入分支程序结构。 3、打开点源开关。 4、调整输入的各个断口的开关量,着重关注在二进制数01100010附近的变化. 5、整理实验器材。 思考题1 写出分支程序设计的要点 分支结构也成为选择结构。在程序中每个分支均为一个程序段。为分支需要,程序设计时不要忘记给程序段的起始地址赋予一个地址标号,以供选择分支使用。 这次实验使用的是一个多分支程序结构,可以通过一系列的JC\JNC\JB\JNB的判断,进行逐级分支。并且可以使用CJNE进行实现。 80C51中没有专门的多分支转移指令,可以使用的变址转移指令“JMP @A+DPTR”,但是这样的指令需要数据表格配合。 思考题2 8051单片机有几个并行口,写出各并行口的特点 8051单片机有4个并行I/O口,分别为P0\P1\P2\P3,以实现数据的并行输入与输出。 这4个并行口均是8为双向口线,各占8个引脚,在P3口线上有着引脚复用,均有第二功能信号,这些第二功能信号都是重要的控制信号,在实际使用中总是先按需要优先选用第二功能,剩下的不用的再当作口线使用。 并行可以有效的提高单片机的工作效率。 思考题3 实验中遇到的苦难 在这个实验中和实验一显着不同的是我们需要重新认识硬件与软件的配合,一些数据线的链接,点源的通断都是我们学习的要点,我们也第一次接触到了输入口和输出口相互之间的区别。 这个实验我们一定要将十进制的思维转换过来转换为二进制的思维,在机器语言中只有开关量的通断,而这个题目也是很好的应用了开关量的通断完成了这个实验。 学会了分支判断方式的编程

计算机体系结构实验报告3篇

计算机体系结构实验报告 第一篇:计算机体系结构概述 计算机体系结构是计算机学科中的一个重要分支,它研 究的是计算机的硬件组成和工作原理,包括计算机的处理器、存储器、输入输出设备、总线等。计算机体系结构的研究可以帮助我们理解计算机的工作原理,优化计算机的性能,提升计算机的能力。 计算机体系结构可以分为两个方面:指令集体系结构和 微体系结构。其中,指令集体系结构是指计算机的操作系统能够直接识别和执行的指令集合,它们是应用程序的编程接口;而微体系结构是指通过硬件实现指令集合中的指令,在底层支持指令集合的操作。指令集体系结构和微体系结构是密切相关的,因为指令集体系结构会影响微体系结构的设计和实现。 目前,计算机体系结构主要有三种类型:单处理器体系 结构、多处理器体系结构和分布式计算体系结构。其中,单处理器体系结构是指所有的指令和数据都存放在同一台计算机中,这种体系结构的优点是操作简单、易于管理,但是主频存在瓶颈,无法很好地发掘多核的性能优势;多处理器体系结构是指多个计算机共享同一块物理内存,因此可以方便地实现负载均衡和任务协作,但是存在通信延迟和数据一致性问题;分布式计算体系结构则是指通过互联网将多个计算机连接成一个网络,可以在全球范围内共享计算资源,但是通信成本和数据安全问题需要考虑。 总之,计算机体系结构是计算机学科中的重要分支,它

研究计算机的硬件组成和工作原理,帮助我们理解计算机的工作原理,优化计算机性能,提升计算机能力。 第二篇:计算机指令集体系结构 计算机指令集体系结构,简称ISA(Instruction Set Architecture),是指计算机能够识别和执行的指令集合。 ISA是计算机指令的编程接口,定义了一组指令和地址模式, 以及寄存器和内存的组织方式,它是计算机软件和硬件协同工作的关键接口之一。 ISA可以分为两类:精简指令集体系结构(RISC,Reduced Instruction Set Computer)和复杂指令集体系结构(CISC,Complex Instruction Set Computer)。RISC体系 结构的指令集比较简单,有限的指令集合可以通过硬件实现得更快,这种体系结构的优点是简单、可扩展、节省资源;CISC 体系结构则更加强调指令的多功能性,指令集更加丰富,可以直接处理较为高级的数据结构,但是也因此所需硬件资源更多。 ISA的另一个重要方面是地址模式,它决定了指令操作数与寄存器和内存之间的映射关系。地址模式可以分为寄存器模式、立即数模式、直接寻址模式、间接寻址模式和相对寻址模式等多种模式,不同模式可以让程序员更加方便的编写程序,也可以让计算机更加高效地执行这些指令。 目前,主流的ISA有x86、ARM、MIPS等,它们在不同应 用领域各有所长。x86体系结构是最古老、最常用的体系结构 之一,广泛应用于个人计算机和服务器等领域;ARM体系结构 则主要应用于移动设备和嵌入式系统,因为它的功耗更低、体积更小、性能更高;而MIPS体系结构则在高性能计算和网络 设备等领域占有重要地位。 总之,计算机指令集体系结构是计算机软件和硬件协同

微机原理实验报告

微机原理实验报告

微机原理实验报告 班级:自动化72 组员梁慕佳 07054031 张乐 07054033 张林鹏 07054034

实验一:8255 并行接口实验 1 实验目的 1. 学习并掌握8255 的工作方式及其应用; 2. 掌握8255 典型应用电路的接法。 2 实验设备 PC机一台,TD-PITE 实验装置一套。 3 实验内容 1. 基本输入输出实验。编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。 2. 流水灯显示实验。编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。 4 实验原理 并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。 图2-6-1 8255内部结构及外部引脚图

图2-6-2 8255控制字格式 5 实验步骤 1. 基本输入输出实验 本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。用一组 开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出 功能。具体实验步骤如下述: (1)实验接线图如图2-6-3所示,按图连接实验线路图; (2)编写实验程序,经编译、连接无误后装入系统; (3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。 图2-6-3 8255基本输入输出实验接线图 程序如下: ;========================================================= ; 文件名: A82551.ASM ; 功能描述: A口为输入,B口为输出,将读入的数据输出显示 ; IOY1

微机原理与应用-实验报告

《微机原理与应用》实验报告 姓名:*** 学号:********** 年级:2014 专业:电子

2016年春季学期 实验一.熟悉单片机开发环境 1.功能要求 在 P1 端口接8 个LED,并编程依次循环点亮。要求用软件延时程序控制LED 的亮灭时间,并能精确地计算和用软件测量延时时间。 2.硬件原理

3.程序清单 ORG 0000H LJMP START ORG 0030H START: MOV R2,#8 MOV A,#01H LOOP1: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP1 MOV R2,#8 RR A LOOP2: MOV P1,A LCALL DELAY RR A DJNZ R2,LOOP2 LJMP START DELAY: MOV R5,#20 D1: MOV R6,#80 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2

DJNZ R5,D1 RET END 4.实验心得 首次接触开发板,通过实验1加强了对单片机的了解,学会使用仿真软件,学会搭线的各种技巧,并且掌握了LED亮灭的原理。 实验二.并行口输入输出实验——循环彩灯控制 1.功能要求 P1 口接8 个开关,P0 口接8 个灯,每个开关对应一个灯,实时读取开 关状态,开关闭合时,灯亮。开关断开时,灯灭。 用5 个开关K0~K4,控制P0 口所接8 个灯的循环,各开关的功能要求 如下: (1)K1~K2 分别选择灯的四种闪动方式; (2)K3 用于控制灯的循环方向(顺时针或逆时针);

(3)K4 用于选择灯的两种循环速度; (4)K0 用于引发外部中断,在外部中断子程序中,读取通过K1-K4 所设定 的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。当K0 没有引发 中断时,保持上一次的循环方式。 2.硬件原理 3.程序清单 ORG 0000H LJMP MAIN DELAY2: MOV R0,#200 D4: MOV R1,#200

微机原理实验之_分支程序、循环程序设计

实验三分支程序、循环程序设计实验 一、实验目的 1.掌握分支程序的结构。 2.掌握分支程序的设计、调试方法。 3.加深对循环结构的理解。 4.掌握循环结构程序设计的方法以及调试方法。 二、实验设备 PC机一台,TD-PITE实验装置一套。 三、实验内容: 设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1所示。 图3-1 源数据块与目的数据块在存储中的位置情况 对于两个数据块分离的情况,如图3-1(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论: 当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图3-1(b)所示。当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图3-1(c)所示。参考流程:如图3-2所示。

图3-2 程序流程图实验程序 STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV CX, 0010H MOV SI, 3100H MOV DI, 3200H CMP SI, DI JA A2 ADD SI, CX ADD DI, CX DEC SI DEC DI A1: MOV AL, [SI] MOV [DI], AL DEC SI

DEC DI DEC CX JNE A1 JMP A3 A2: MOV AL, [SI] MOV [DI], AL INC SI INC DI DEC CX JNE A2 A3: JMP A3 CODE ENDS END START 实验步骤 1. 按流程图编写实验程序,经编译、链接无误后装入系统; 2. 用E命令在以SI为起始地址的单元中填入16个数; 3. 运行程序,然后再停止运行; 4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同; 5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。 2. 计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。 编写实验程序,计算上式的结果,参考流程图如图3-3所示。 图3-3 程序流程图 实验程序

《Python程序设计》实验3Python基本数据类型及分支结构实验报告

**大学数学与信息工程学院 《 Python 程序设计》实验报告 实验名称:班级:实验地址:实验 3 Python 姓名: 日期: 基本数据种类及分支构造 学号: 一、实验目的: [ 实验目的和要求] 1、娴熟掌握Python 三种数字种类及其应用 2、娴熟判断条件表达式的真假 3、娴熟掌握Python 分支构造 二、实验环境: 1、计算机,局域网,软件 三、实验内容和要求:(直接将实验步骤及截图写在题当今面,结果一定截图) 1、复数 z=-3+4j ,用 Python 程序求得对应的实部和虚部并计算z 的绝对值,并思虑输出的绝对值代表什么含义? 2、请将以下数学表达式用Python 程序写出来,并运算结果 247 3 4 1)x 5 代码: a=2**4 b=7 c=3 d=4 e=5 x=(a+b-c*d)/e print(x)

2)x(1 32 )(16 mod 7) / 7 代码: a=3**2 b=1 c=16 d=7 x=(a+b)*(c%d)/7 print(x) 3、编写程序,依据输入的长和宽,计算矩形的面积并输出。要求:输入语句input 实现同步赋值。lw=input(' 请输入矩形的长和宽,以空格分开:') length,width=map(float,lw.split()) s=length*width print(" 矩形面积为:",s) 4、编写程序 ,用户输入一个三位以上的整数(假如不是三位数则提示输入错误),输出其百位以上的

数字。比如用户输入1234,则程序输出12。(提示:使用整除运算。) 代码: a=eval(input(' 请输入一个三位以上的整数:')) b=int(a/100) if(a<99): print(' 输入错误 ') else: print(b) ------------------------------------------------------------------------------------------------------------------------------ 5、已知某课程的百分制分数 mark,将其变换为 5 分制 ( 优、良、中、及格、不及格 ) 的评定等级grade ,评定条件以下:(注意:不要存在冗余条件) 优 mark 90 良 80 mark 90 成绩等级 = 中 70 mark 80 及格 60 mark 70 不及格 mark 60 代码: mark=eval(input(' 请输入你的分数:')) if mark>=90: print(' 优 ') elif 90>mark>=80: print(' 良 ')

微机原理与单片机实验报告

微机原理与单片机实验报 告 Prepared on 22 November 2020

北京联合大学信息学院实验报告 课程名称:微型计算机原理 学号: 姓名: 2012 年 6 月 9 日

目录

实验1 EMU8086模拟器的使用 一实验要求 利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看 二实验目的: 熟悉EMU8086实验环境 三 EMU8086环境: 1 模拟器编辑窗口 2 模拟器调试窗口

四实验内容 实验内容1:新建文件。 运行 emu8086 1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码: MOV AX, 1020H MOV BX, 2030H MOV AX, BX ADD AX, BX MOV [BX], AX MOV [2032H], AX HLT 2. 编译:单击“编译”按钮,对程序段进行编译; 3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。

4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。 5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。 6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。 7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为 400毫秒,单击“全速”按钮,运行程序, 8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容 9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序的关联。 10.将“存储器”中地址改为1000:0100,并将从其开始的连续10个单元的内容改为55H。 实验内容2:运行范例 在模拟器编辑窗口中 1.点击典型范例 2.选择:hellow,word程序,编译,运行,观察结果。 修改程序(不要改原有DEMO程序),输出学号,姓名(汉语拼音或英文名) numbers程序,编译,运行,观察结果。

相关主题
文本预览
相关文档 最新文档