微机原理实验报告
微机原理综合实验报告

滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级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”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。
3、实验准备1)编写实验内容要求的两个程序。
2)写出调试以上程序,即修改程序参数,检查结果的操作方法。
3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。
微机原理实验一报告

微机原理实验一1.DEBUG 的基本操作:(1)从WINDOWS 进入DOS 之后,输入命令启动DEBUG:C:>DEBUG 回车(2)输入R 命令,查看和记录CPU 各个寄存器的内容:-R 回车看到什么?AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 0000 ADD [BX+SI],AL DS:0000=CD(3)输入 A 命令,汇编下面的字符“WINDOWS”显示程序(DEBUG 调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H):-A 100 ;从偏移地址是0100H 处开始写指令MOV AH,2MOV DL, 57 ;57H 是“W”的ASCII 码INT 21 ;INT 21 是DOS 功能调用,AH=2 代表2 号功;能。
这3 句合起来的功能是:显示DL 中的字符MOV DL, 49INT 21MOV DL, 4EINT 21MOV DL, 44INT 21MOV DL, 4FINT 21MOV DL, 57INT 21MOV DL, 53INT 21INT 3 ;功能是产生一个断点,不要省略(4)输入U 命令反汇编上面的程序:-U 100问:这里100代表什么?反汇编从0100开始(5)输入G命令连续运行上面的程序,记录运行结果:-G=100AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 B402 MOV AH,02(6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45:-E 103 回车(以下同)-E 107-E 10B-E 10F-E 113-E 117-E 11B(7)输入D命令查看程序机器码的存放情况:-D 100 11E ;看从100开始到11E的机器码(8)输入G命令再连续运行程序,并记录运行结果:-G=100WELCOMEAX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=011E NV UP EI PL NZ NA PO NC 16D3:011E CC INT 3(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各命令的运行结果:-T=100 回车-G=100 106 回车-G=100 10A 回车-G=100 10E 回车-G=100 11E 回车T=100AX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0102 NV UP EI PL NZ NA PO NC 16D3:0102 B257 MOV DL,57-g=100 106W-g=100 10aWE-g=100 10eWEL-g=100 11eWELCOME2.一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):CS:0100 8D360010 LEA SI,[1000] ;将EA=1000送入SI中0104 8D3E2010 LEA DI,[1020] ;将EA=1020送入DI中0108 8A04 MOV AL,[SI] ;(AL)←((SI))010A 240F MOV BL,AL ;将AL中的一个字送入BL010C 240F AND AL,0F ;(AL)←(AL)^(01H)010E E80E00 CALL 011F ;调用EA=011F中的指令0111 80E30 AND BL,F0 ;(BL)←(BL)^(F0H)0114 B90400 MOV CX,4 ;将立即数4送入CX中0117 D2EB SHR BL,CL ;将BL中的内容左移CL;中指出的位数,且每次移位最低位补0 0119 88D8 MOV AL,BL ;将BL中的一个字送入AL011B E80100 CALL 011F ;调用EA=011F中的指令011E F4 RET :返回指令011F 3C09 CMP AL,09 ;(AL)-09,根据结果设置标志位0121 7602 JBE 0125 ;执行EA=0125的指令0123 0407 ADD AL,07 ;(AL)←(AL)+07H0125 0430 ADD AL,30 ;(AL)←(AL)+30H0127 8805 MOV [DI],AL ;(AL)送入EA=(DI)的单元中0129 47 INC DI ;(DI)←(DI)+1012A C3 RET ;返回指令运行结果:1)写出执行上述程序的命令行-G=1002)程序执行后,[1020]=_____41_____,[1021]=___35______。
微机原理实验报告_2

实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境1、硬件:PC 微机2、软件:宏汇编MASM 软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。
堆栈段的SEGMENT之后有关键字STACK。
代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:D:\>CD MASMD:\MASM>EDIT TEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
程序示例DATA SEGMENTDA1 DB 10H,20H,30H,40HDA2 DB 0F0H,0B0H,0A0H,90HDA3 DB 00H,00H,00H,00HDATA ENDSSTACK1 SEGMENT PARA STACKDB 10 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AL,[DA1]ADD AL,[DA2]MOV [DA3],ALMOV AL,[DA1+1]ADC AL,[DA2+1]MOV [DA3+1],ALMOV AL,[DA1+2]ADC AL,[DA2+2]MOV [DA3+2],ALMOV AL,[DA1+3]ADC AL,[DA2+3]MOV [DA3+3],ALCODE ENDSEND START3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
微机原理的实验报告

一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理实验报告并口实验

微机原理实验报告:并口实验1. 引言微机原理实验是计算机科学与技术专业的一门重要实验课程之一。
通过该实验,学生可以了解并学习微机系统的基本原理和结构,培养对计算机硬件的基本操作和维护能力。
本报告将详细介绍我们在并口实验中所进行的实验步骤、实验结果和实验心得。
2. 实验目的本次实验的目的是通过并口实验,了解并实践如何使用并行口控制外部设备。
并口是计算机上常见的接口之一,用于与外部设备进行数据交互,例如打印机、键盘、LED灯等。
通过本次实验,我们将学会如何通过编程的方式控制并口输出信号,进而控制外部设备的工作。
3. 实验步骤(1)准备工作:首先,我们需要准备一台支持并口的计算机,并确保系统已经安装了合适的驱动程序。
然后,我们需要连接一根并口数据线,将计算机与外部设备连接起来。
(2)编程环境搭建:我们要使用的编程语言是C语言,所以需要在计算机上配置相应的编译器和开发环境。
(3)编写代码:接下来,我们需要编写一段简单的代码,来控制并口输出信号。
这段代码通常包括对并口寄存器的读写操作。
我们可以使用IO口的寄存器来设置输出状态和控制外部设备的工作。
(4)测试与调试:在编写完代码后,我们需要进行测试和调试。
通过观察外部设备的反应,可以判断代码是否正确地控制了并口输出信号。
如果出现问题,我们可以通过查看代码和调试信息来找出问题的原因。
4. 实验结果我们按照上述步骤完成了实验,并取得了如下实验结果:(1)成功控制外部设备:通过编写控制代码,我们成功地控制了与计算机连接的外部设备。
例如,我们可以在LED灯上显示相应的图案和文字。
(2)了解并口寄存器操作:通过本次实验,我们对并口寄存器的操作有了更深入的了解。
我们学会了如何设置输出状态和控制外部设备的工作模式。
(3)掌握数据传输方法:在实验过程中,我们还掌握了一些基本的数据传输方法。
例如,我们可以通过并口将数据传输给外部设备或从外部设备接收数据。
5. 实验心得通过本次并口实验,我们对微机系统的基本原理和结构有了更深入的了解。
微机原理实验报告

目录软件实验部分:实验一清零程序实验二拆字程序实验三拼字程序实验四数据区传送子程序实验五数据排序实验实验六查找相同数个数实验七无符号双字节快速乘法子程序实验八多分支程序实验九脉冲计数(定时/计数器实验)实验十电脑时钟(定时器、中断综合实验)硬件实验部分:实验一 P1口亮灯实验实验二 P1口转弯灯实验实验三 P3.3口输入,P1口输出实验四工业顺序控制实验五继电器控制实验六 8255控制交通灯实验七 LED16×16点阵显示实验实验八串并转换实验实验九 A/D转换实验实验十 D/A转换实验十一电子音响实验十二步进电机控制实验十三 8032串行口应用实验㈠——双机通信实验十四小直流电机调速实验软件实验部分本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此需按下图连接实验线路。
1.将存储器单元的D0—D7总线接口用8芯扁平线与数据总线单元D0—D7的任一接口相连,存储器单元的A0—A7地址接口与地址总线单元(低8)A0—A7的任一接口相连,存储器单元的A8—A12地址接口与地址总线单元(高8)A8—A12的任一接口相连。
注意外部扩充的数据区的有效范围。
2.存储器单元的WE/PGM插孔与六位LED左下方的IOWE插孔相连。
3.存储器单元的OE插孔与六位LED左下方的IORD插孔相连。
4.存储器单元的CS1插孔与六位LED右下方的IOWE插孔相连。
实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000H-20FFH的内容清零三、程序框图四、实验步骤用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。
五、思考假使把2000H-20FFH中的内容改成FF,如何修改程序。
微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。
二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。
三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开CPU窗口,观察CPU窗口各寄存器的变化。
打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。
在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。
2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。
3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。
4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。
5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。
四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。
微机原理实验报告

微机原理实验报告实验⼀DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.练习使⽤DEBUG,调试简单汇编程序。
⼆、实验要求1.掌握DEBUG的使⽤,调试程序。
2.读懂程序中各条指令,说明程序功能。
三、实验内容1.启动DEBUG,⽤A命令输⼊并汇编下列程序段。
100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验⼆简单汇编语⾔设计实验类型:实验课时:指导教师:时间: 2012 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.巩固DEBUG及宏汇编的使⽤。
2.加深对指令的理解。
⼆、实验要求1.设堆栈指针SP=2000H,(AX)=3000H,(BX)=5000H。
请编⼀程序将AX的内容和BX的内容进⾏交换。
请⽤堆栈作为两寄存器交换内容的中间存储单元,⽤DEBUG调试程序进⾏汇编与调试。
2.设DS=当前段指地址,(BX)=0300H,(SI)=0002H,请⽤DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装⼊0AH、0BH、0CH、0DH、0EH。
在DEBUG状态下送⼊下⾯程序,并⽤单步执⾏的⽅法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3.设(AX)=0002H,编⼀个程序段将AX的内容乘10,要求⽤移位的⽅法完成。
三、思想描述实验内容1将两个寄存器的内容进⾏交换时,必须有⼀个中间寄存器才能进⾏内容的交换,如果⽤堆栈做为中间存储单元,必须遵循先进后出的原则。
微机原理综合实训报告

通过本次微机原理综合实训,使学生掌握微型计算机的基本组成、工作原理以及常用接口技术,培养学生动手实践能力、分析问题和解决问题的能力。
具体目标如下:1. 熟悉微型计算机的硬件组成,了解各部件的功能和相互关系。
2. 掌握微机原理与接口技术的基本知识,如总线、中断、DMA等。
3. 学会使用常用接口芯片,如8255、8259、8253等。
4. 能够进行简单的微机原理设计与实现。
二、实训内容1. 微型计算机硬件组成实验(1)了解微型计算机的基本组成,包括中央处理器(CPU)、存储器、输入输出设备、总线等。
(2)学习CPU的内部结构,了解指令系统、寻址方式等。
(3)了解存储器的分类、容量、速度等参数,学习存储器扩展技术。
(4)学习输入输出设备的工作原理,掌握常用接口芯片的使用方法。
2. 微机原理与接口技术实验(1)学习总线、中断、DMA等基本概念,了解其工作原理。
(2)学习8255并行接口芯片的应用,实现LED显示、按键输入等功能。
(3)学习8259中断控制器芯片的应用,实现中断处理。
(4)学习8253定时/计数器芯片的应用,实现定时功能。
3. 系统设计与实现(1)根据实训要求,设计一个简单的微机系统。
(2)确定系统硬件组成,选择合适的接口芯片。
(3)编写系统软件,实现系统功能。
(4)进行系统调试,确保系统稳定运行。
1. 实验准备(1)了解实验目的、内容和方法。
(2)查阅相关资料,掌握实验所需知识和技能。
(3)准备实验仪器和设备,如示波器、逻辑分析仪等。
2. 实验操作(1)按照实验步骤进行操作,观察实验现象。
(2)记录实验数据,分析实验结果。
(3)针对实验过程中遇到的问题,查阅资料、请教老师,解决问题。
3. 系统设计与实现(1)根据实训要求,确定系统设计方案。
(2)进行硬件选型,设计电路图。
(3)编写系统软件,实现系统功能。
(4)进行系统调试,确保系统稳定运行。
四、实训成果1. 完成微型计算机硬件组成实验,掌握微型计算机的基本组成和工作原理。
微机原理上机实验报告

微机原理上机实验报告实验一基本输入/输出实验:本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入/输出功能。
8255基本输入/输出实验参考接线图如图所示。
流程图:操作步骤:按图示连好线路,在TDPIT中输入如下程序,编译、连接、运行。
DATA SEGMENTCS0 EQU 300OHMY8255_A EQU CS0+00HMY8255_B EQU CS0+01HMY8255_C EQU CS0+02HMY8255_MODE EQU CS0+03HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV DX,3003HMOV AL,10000010BOUT DX,ALTEST_IT:MOV DX,3001HIN AL,DXMOV DX,3000HOUT DX,ALJMP TEST_ITCODE ENDSEND START实验现象:闭合开关,对应控制灯泡发光。
实验二流水线指示灯显示实验:首先分别将A口和B口写入7FH和FEH,然后分别将该数右移和左移一位,在送到端口上,这样循环下去,从而实现流水灯的显示。
8255流水灯显示实验参考接线图如图所示。
流程图:操作步骤:按图示连好线路,在TDPIT中输入如下程序,编译、连接、运行。
DATA SEGMENTCSO EQU 3000HA EQU CSO+0000HB EQU CSO+0001HC EQU CSO+0002HM EQU CSO+0003HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV AL,10000000BMOV DX,MOUT DX,AL;MOV DX,B;IN AL,DXL1:MOV AL,00001000BMOV DX,AOUT DX,ALMOV AL,00000001BMOV DX,BOUT DX,ALMOV CX,00FFHC1: MOV BX,CXMOV CX,0FFFFHD1:LOOP D1MOV CX,BXLOOP C1MOV AL,00000100BMOV DX,AOUT DX,ALMOV AL,00000010BMOV DX,BOUT DX,ALMOV CX,00FFHC2: MOV BX,CXMOV CX,0FFFFHD2:LOOP D2MOV CX,BXLOOP C2MOV AL,00000010BMOV DX,AOUT DX,ALMOV AL,00000100BMOV DX,BOUT DX,ALMOV CX,00FFHC3: MOV BX,CXMOV CX,0FFFFHD3:LOOP D3MOV CX,BXLOOP C3MOV AL,00000001BMOV DX,AOUT DX,ALMOV AL,00001000BMOV DX,BOUT DX,ALMOV CX,00FFHC4: MOV BX,CXMOV CX,0FFFFHD4:LOOP D4MOV CX,BXLOOP C4JMP L1MOV AX,4C00HINT 21HCODE ENDSEND START实验现象:灯泡如流水般从左至右依次流动发光,并始终保持在同一时间只有一个灯亮着。
微机原理及应用实验报告

微机原理及应用实验报告微机原理及应用实验报告1. 引言微机原理及应用是计算机科学与技术专业的一门重要课程,通过该课程的学习和实验,我们可以深入了解微机的基本原理和应用技术。
本文将对我们进行的微机原理及应用实验进行详细报告,包括实验目的、实验内容、实验步骤、实验结果及分析等。
2. 实验目的本次实验的目的是通过实际操作,加深对微机原理的理解,掌握微机的基本组成和工作原理,以及学习并应用微机的常见应用技术。
3. 实验内容本次实验主要涉及以下内容:- 微机的基本组成和结构- 微机的工作原理- 微机的存储器和输入输出设备- 微机的指令系统和编程技术4. 实验步骤4.1 实验一:微机的基本组成和结构在这个实验中,我们首先学习了微机的基本组成和结构,包括中央处理器、存储器、输入输出设备等。
通过观察实际的微机硬件设备,我们对微机的组成有了更加直观的认识。
4.2 实验二:微机的工作原理在这个实验中,我们学习了微机的工作原理,包括指令的执行过程、中央处理器的工作原理等。
通过实际操作,我们对微机的工作过程有了更加深入的理解。
4.3 实验三:微机的存储器和输入输出设备在这个实验中,我们学习了微机的存储器和输入输出设备的原理和应用。
通过实际操作,我们了解了存储器的读写过程,以及输入输出设备的工作原理。
4.4 实验四:微机的指令系统和编程技术在这个实验中,我们学习了微机的指令系统和编程技术。
通过实际编写和执行简单的汇编语言程序,我们掌握了微机的编程技术,并了解了指令的执行过程。
5. 实验结果及分析通过以上实验,我们对微机的原理和应用有了更加深入的理解。
我们通过实际操作,掌握了微机的基本组成和结构,了解了微机的工作原理,熟悉了微机的存储器和输入输出设备,掌握了微机的指令系统和编程技术。
这些知识和技能对我们今后的学习和工作都具有重要的意义。
6. 总结通过本次微机原理及应用实验,我们深入了解了微机的基本原理和应用技术。
通过实际操作,我们对微机的组成和工作原理有了更加直观和深入的理解,掌握了微机的存储器和输入输出设备的原理和应用,以及微机的指令系统和编程技术。
(完整word版)微机原理完整实验报告+程序

实验题目8253定时/计数器实验 一、 实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、 实验内容: 1、实验原理 本实验原理图如图 1所示,8253A 的A0、A1接系统地址总线 A0、A1,故8253A 本实验通道2 有四个端口地址,如端口地址表 1所示。
8253A 的片选地址为 48H~ 4FH 。
因此, 仪中的8253A 四个端口地址为 48H 、49H 、4AH 、4BH ,分别对应通道 0、通道1、 和控制字。
采用8253A 通道0,工作在方式3(方波发生器方式),输入时钟CLK0为 输出OUTO 要求为1KHZ 的方波,并要求用接在 GATE0引脚上的导线是接地("0" 甩空("1"电平)来观察GATE 对计数器的控制作用,用示波器观察输出波形。
2、实验线路连接 (1) 8253A 芯片的CLK0引出插孔连分频输出插孔 (2) 8253A 的 GATE0 接+5V 。
实验步骤 (1) 按图1连好实验线路(2) 运行实验程序 1. 按“调试”按钮2. 选“窗口” “进入示波器窗口” ,然后最小化3. 按“运行按钮”4.将模拟示波器窗口打开,选择“串行口 2”,再按 Ctrl + F2按钮即可看到波形 显示“ 8253-1 ”用示波器测量8253A 的OUT2输出插孔,方波输出,幅值0〜4V 三、实验代码: 1MHZ ,电平)或 3、 CODE SEGMENT ASSUME CS:CODE TCONTRO EQU 004BH TCON2 EQU 004AH CONT PORT EQU 00DFH DATA PORT EQU 00DEH DATA1 EQU 0500H START: JMP TCONT TCONT: CALL FORMATCALL LEDDIS P MOV DX,TCONTRO1MHZ 。
微机原理实验报告

微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
微机原理中断实验报告(3篇)

第1篇一、实验目的1. 理解中断的概念和作用;2. 掌握中断系统的组成和基本工作原理;3. 熟悉中断向量表、中断服务程序和中断处理过程;4. 通过实验验证中断系统的正确性和可靠性。
二、实验原理1. 中断的概念:中断是CPU在执行程序过程中,由于某些事件的发生,暂时停止当前程序的执行,转而执行相应的事件处理程序的过程。
2. 中断系统的组成:中断系统主要由中断控制器、中断源、中断向量表、中断服务程序和CPU等组成。
3. 中断向量表:中断向量表是存储中断服务程序入口地址的表格,其中每个中断向量对应一个中断服务程序。
4. 中断服务程序:中断服务程序是处理中断事件的核心程序,用于完成中断事件的处理任务。
5. 中断处理过程:当中断事件发生时,CPU会根据中断向量表找到对应的中断服务程序入口地址,并跳转到该地址执行中断服务程序。
三、实验仪器与设备1. 实验台:微机原理实验台2. 电脑:一台3. 软件环境:Keil uVision、emu8086等四、实验步骤1. 启动实验台,打开微机原理实验台软件。
2. 在软件中设置实验参数,如中断源、中断向量等。
3. 编写中断服务程序,实现中断事件的处理任务。
4. 编写主程序,调用中断服务程序。
5. 运行实验程序,观察中断系统的运行情况。
五、实验内容1. 实验一:单级中断系统(1)设置一个外部中断源,如按键中断。
(2)编写中断服务程序,实现按键按下时的处理任务。
(3)在主程序中调用中断服务程序。
2. 实验二:多级中断系统(1)设置两个外部中断源,如按键中断和定时器中断。
(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。
(3)设置中断优先级,实现多级中断。
(4)在主程序中调用中断服务程序。
3. 实验三:中断嵌套(1)设置两个外部中断源,如按键中断和定时器中断。
(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。
(3)实现中断嵌套,即在定时器中断服务程序中再次触发按键中断。
微机原理实验 原理

微机原理实验原理
实验1:微机原理实验的实验目的
实验2:微机原理实验的仪器和材料
实验3:微机原理实验的实验步骤
实验4:微机原理实验的实验结果与分析
实验5:微机原理实验的实验结论
实验1:实验目的
本实验旨在通过使用微机原理实验仪器和材料,了解微机原理的基本原理和工作方式。
实验2:仪器和材料
本实验所需的仪器和材料包括微机原理实验仪器、计算机、电源线、串口通信线、示波器等。
实验3:实验步骤
1. 将微机原理实验仪器与计算机连接,确保连接稳定。
2. 打开电源线,将微机原理实验仪器通电。
3. 配置串口通信线,确保仪器与计算机之间的串口通信正常。
4. 在计算机上开启相关的软件程序,进行实验参数的设置与调整。
5. 根据实验要求,进行数据采集、数据处理以及实验结果的观察与记录。
6. 分析实验结果,根据实验目的得出相应的结论。
实验4:实验结果与分析
根据实验数据的采集和处理,我们得到了实验结果。
经过对实
验结果的分析和比较,可以得出以下结论:
- 实验结果符合预期,验证了微机原理的基本原理和工作方式。
- 实验过程中出现了一些异常情况,为了更好地理解这些异常
状况,需要进一步分析和研究。
实验5:实验结论
通过本次微机原理实验,我们深入了解了微机原理的基本原理和工作方式。
我们可以得出以下结论:
- 微机原理是计算机科学中的基础课程,对于理解和掌握计算
机系统的工作原理至关重要。
- 通过实验,我们可以进一步深入理解微机原理,为今后的学
习和科研工作奠定基础。
微机原理实验报告 -回复

微机原理实验报告 -回复实验报告:微机原理一、实验目的1. 学习微机原理的基本概念和工作原理;2. 了解微机硬件系统的组成和功能;3. 实际操作微机系统,掌握常见的微机指令格式和计算方法。
二、实验仪器和材料1. 个人电脑;2. 操作系统软件;3. 汇编语言开发环境。
三、实验内容1. 安装操作系统软件,确保系统正常运行;2. 学习并掌握微机硬件系统的主要组成部分,包括中央处理器(CPU)、内存、输入输出设备等;3. 编写并调试汇编语言程序,运行计算程序实现加减乘除等基本运算;4. 分析程序运行过程中的指令执行情况,如寄存器状态的变化;5. 实验过程中要注意安全操作,避免人为损坏实验设备。
四、实验结果与分析通过安装操作系统软件,我们确保了系统正常运行。
在学习微机硬件系统的组成和功能时,我们了解了中央处理器(CPU)的作用和主要组成部分,以及内存和输入输出设备的作用。
在编写和调试汇编语言程序的过程中,我们成功实现了加减乘除等基本运算,并通过分析程序运行过程中的指令执行情况,了解了寄存器状态的变化。
五、实验心得通过这次实验,我们更深入地了解了微机原理的基本概念和工作原理。
通过实际操作微机系统,我们掌握了常见的微机指令格式和计算方法。
实验过程中,我们加深了对微机硬件系统的理解,也学会了如何编写和调试汇编语言程序。
这次实验不仅提高了我们的实际操作能力,还培养了我们分析问题和解决问题的能力。
总之,通过这次微机原理实验,我们对微机系统有了更深入的了解,也掌握了更多实际应用的知识和技能。
这对我们今后学习和工作都会有很大的帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大学科技学院实验报告课程名称:微机原理实验实验一数据转换实验一、实验目的(1)初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。
(2)通过对两个验证性试验的阅读、调试、掌握不同进制数及编码相互转换的程序设计方法。
(3)完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。
二、实验内容1.十六进制数转换为ASCII码设二字节十六进制数存放于其实地址为3500H的内存单元中,把他们转换成ASCII码后,再分别存入起始地址为350A的四个内存单元中。
从书上ASCII码表中可知十六进制数加30H即可得到0H~9H的ASCII码,而要得到AH~FH 的ASCII码,则需再加7H。
请根据所给流程图理清思路,总结出对应的若干要点。
将流程图与参考程序相互。
根据分析的结果将运行时内存的变化列写出来。
学习并使用MASM或WAVE仿真软件分析程序运行过程中相关寄存器及相应内存的变化情况来验证自己的猜想,以巩固命令的学习,提高编程能力。
图1-1-1DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX;此处输入代码段代码MOV CX,0004H;根据转换个数设定循环次数;(两字节十六进制数如6B2C对应有四个用十六进制表示的ASCII码表示,即四个字节)MOV DI,3500H;指向该两字节十六进制数起始地址,此时在调试窗口修改内存字节MOV DX,[DI];将地址3500H中的内容(6B2C)给DXA1: MOV AX,DX;第一次时DX=6B2C,;因为想顺序取C、2、6、B,所以需要一个中间变量AND AX,000FH;取低四位,第一次取到C,CMP AL,0AH;判断AL属于0~9,还是A~FJB A2;如果是0~9,则跳转到A2ADD AL,07H;若属于A~F,再加上07H后也是再加上30H即得到转换。
A2: ADD AL,30H;0~9的ASCII码对应的十六进制比其;本身(注意:亦是十六进制)大30HMOV [DI+0AH],AL;将转码后的C,即43H给350AINC DI;将DI指向下一字节,用于存储转码后的值,第一次自增后要存‘2’PUSH CX;功能是接下来要用到CX作为一个中间变量,;而刚才已经使用并且接下来还会用到CX的值,;也可以不用CX,用其他不用的寄存器或者直接立即数形式的。
MOV CL,04H;若直接用立即数,可能不稳定,(原因不详)用一个中间变量。
SHR DX,CL;右移四位,如第一次转码后,DX=6B2C,;为下一次取低四位的2做好前提,将0010b移到低四位POP CX;执行完后,CX又用于计数LOOP A1;每一次转码后,执行完此句后,CX的值都要变化,;分别是3,2,1,0;正好四次。
MOV AH,4CHINT 21HCODES ENDSEND START1.3 实验过程与心得1.3.1 编程要点1.数据在内存空间中的存储情况要清晰;图1-1-2 图1-1-3如上图所示图1-2为处理前的存储情况,通过调试中的内存修改来实现并检查,图1-3为最后期待的转码结果,通过查询内存来检查。
2.基本功能的实现:分两种情况去转码。
中间涉及到比较选择语句,可以通过标志位来理解学习JB的实现条件是由于标志位的变化。
3.取与存两个“指针”的变化(1)取时通过一个中间变量取经过右移四位后的低字节来依次选择C、2、B、6;使用软件时,看AX经过“AND AX,000FH”后是否取到了这些数。
(2)每一次转码后存储时将指针在存储空间305A不断移动。
每次存储后,可查询内存。
(3)每一次循环过后,CX都要变化,也可同时学习PUSH、POP 功能。
1.3.2 软件使用简介1.W A VE软件它可以将内存的变化及寄存器的变化实时展示出来,红色数据是新变化的值。
查找内存时可通过右键转到地址即可,但需要输入物理地址。
如此时偏移地址为3500H,而通过观察DI赋值前一状态ds为20H,则通过计算可知在3700H输入2C,3701H输入6B即可,双击修改。
可以与硬件连接做接口实验,但没有人机对话功能。
在使用之前需要建立新项目。
过程简介如下:选择8086仿真--右击模块文件--新建项目--假如已编ASM文件(最好一个文件夹中)--保存项目--全部编译--单步执行(F8)--观查内存变化。
2.MASM软件它可以通过DEBUG调试窗口来进行观察,但需要有不同的命令输入去修改内存,查询内存,并且更新情况也不如W A VE直白,若有其他未考虑的某值变化,不宜观测。
单步跟踪(“t”)是先执行上一条语句,并显示执行后的状态,即显示上一语句执行后的状态。
而末尾的命令语句还未执行。
它不需要计算物理地址。
如找3500H时,直接输入“d ds:3500”即可查询。
另外,标志位的查询尽管每次单步跟踪都显示,但是需要先记住各个符号代表的意思。
修改内存较W A VE繁琐,需要输入e 3500,然后会提示修改,但一次只能改一个字节的内容。
其余命令可以在左侧DEBUG调试里双击在右侧得到。
另外,状态的显示没有记录。
MASM有人机对话功能,但在使用时,无法调试查看内存变化。
过程简介:编程--保存(.asm)--编译成目标文件--生成可执行文件--DEBUG调试。
1.3.3 使用过程1.将二字节十六进制数存放于起始地址为3500H的内存单元中图1-1-42.查看内存的变化--注意DX的变化图1-1-53. (1)注意AX的变化,已取低四位(2)标志位的变化:0CH比0AH大,NC表示CF=0,不执行JB后的命令,即继续执行+07H。
图1-1-64.(1)结合图1-7和1-8观察确定内存变化的时刻,了解调试指令t的运行情况;(2)DI的变化图1-1-7图1-1-85.(1)结合图1-8和图1-9观察DX的变化;(2)在调试过程中发现AX有非预期的变化,而原先也是有的,只是没注意到。
这个对于代码段的思路学习是没太大关系的。
图1-1-96.(1)注意CX的变化;(2)标志位CF由NC变成了CY,判断为JB成立,执行A2图1-1-107.(1)存储顺序的检查,确定指针指在350B,即确定可以往后存储;(2)压栈的变量(CX)变化时间,PUSH后并没有改变CX的值;图1-1-118.(1)出栈的变量(CX)变化,出栈后CX的值还原。
(在这里才提到是因为第一次循环中CX都是0004H,看不出变化)(2)g命令的使用,它可以全部运行,方便查看最后的结果。
因为至此关于编程的几个要点已全部明确。
图1-1-129.(1)检查执行结果,存储结果与预期相符。
(2)检查CX是否为预期的0,应用跟踪执行指令(‘t’),发现g 只是一个断点,用于显示验证。
但内存已发生了改变。
图1-1-1310. 由于内存已变化,无法确定后续命令是否对内存产生效果,虽从内存上不知350C是否再一次得到赋值,但AX的变化也可知。
但更改350D的值,观察350D的变化也可以明显确定,形成对比。
图1-1-1311.通过图1-14和图1-15可知,LOOP指令CX的计数方式。
图1-1-14图1-1-152.程序设计:将十进制的ASCII码转换为BCD设从键盘输入的五位十进制数的ASCII码存放在2000H起始的内存单元内。
若输入的不是十进制数的ASCII 码,则对应存放结果的单元内容为“FF”。
完成相应程序的编制,进行调试并验证结果。
2.1 程序流程图2.2 程序DATAS SEGMENT;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码 STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START :MOV AX,DATAS MOV DS,AX;此处输入代码段代码 MOV CX,05hMOV BX,2000H ;存十进制数的ASCII 码的起始位置 GET: MOV AH,01H ;键入十进制数 INT 21H ; mov al,31h MOV [BX],AL ;比较输入的所对应的ASCII 码是否在0~9内 CMP AL,30H JB error CMP AL,39H JA error JMP crec ;不经过errorerror: ;不是十进制数时,将FFH 存入对应内存。
push cxmov cx,0ffh MOV [BX+1000H],cx pop cx MOV DL,[BX+1000H];直接将FF 做为ASCII 码所对应的符号显示出来,用以检验 MOV AH,02H INT 21H JMP endd crec: SUB AL,30H ;如若属于0~9,则图1-2-1-30H即可得到对应的十进制数于内存中MOV[BX+1000H],AL;将每一次翻过来的值放到3000H,3001H...3004H 中MOV DL,[BX+1000H];显示用以检查验证add dl,30hMOV AH,02HINT 21Hendd:INC BXLOOP GET ;这种显示是一次输入对应两个地方的存储并分别显示。
MOV AH,4CHINT 21HCODES ENDSEND START2.3 程序运行结果若为0~9,则输入一个数显示一个数;若是除此之外的,则显示FFH做为ASCII所对应的字符,如图2-2所示。
另外,这种演示的前提是确定显示语句是正确的。
图2-2实验二数据处理实验一、实验目的(1) 进一步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。
(2) 通过阅读并调试数据处理的示例程序,完成程序设计题,掌握简单程序的结构。
二、实验内容1. 寻找最大数和最小数的程序设在内存缓冲区BUF+1单元开始,存放8个单字节数,其数据长度在BUF单元,要求找出最大数送MAX单元,最小输送MIN单元。
假如第一个数是最大数,并送到MAX单元中,依次把余下的数送到MAX单元中,否则取下一个数,最后MAX单元中即为最大数。
同理可求出最小数。
1.1 参考程序DATAS SEGMENT;此处输入数据段代码ORG 100H ;定义偏移首地址,方便寻找内存BUF db 8,22,33,12,-1,-50,-32,97,127MAX db?MIN db?DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX 1.2 实验流程图;此处输入代码段代码MOV CH,0MOV CL,BUF ;存个数数DEC CX ;后面要循环比较七(8-1)次,先变成七MOV AL,BUF+1 ;拿出第一个数放到最大数和最小数中,用于比较和更新MOV MAX,AL ;放到最大数MOV MIN,ALMOV BX,OFFSET BUF+2 ;拿第二个数与现有的最大最小值比较LAST:MOV AL,[BX] ;AL作为暂时存储的寄存器代表新来的要比较的值CMP AL,MAX ;判断是否更大JG GREAT ;若大(用于有符号比较),则跳转CMP AL,MIN ;判断是否更小,也可将相等的情况视作小于,则可省去,直接跳转至LESS即可JL LESS ;若小,也相应跳转JMP NEXT ;若相等,则直接跳过GREAT:MOV MAX,AL;大数更新JMP NEXTLESS:MOV MIN,AL;小数更新NEXT:INC BX ;BX取的是第二个数(用于排序)的地址,现在要指向下一个,即要判断下一个LOOP LAST ;第一次循环后,执行此句前cx为7,然后自减,判断是否继续。