微机原理实验报告
- 格式:docx
- 大小:667.30 KB
- 文档页数:35
滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级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. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理实验报告班级:指导老师:学号:姓名:实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图图3-1四、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五、实验结果与分析这次实验依次将相加数与被加数存入AL,BL,依次从低位向高位相加,然后把结果放在内存中。
软件实验报告软件实验一一、实验目的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个字节存储块各单元内数据对应相同。
通过本次微机原理综合实训,使学生掌握微型计算机的基本组成、工作原理以及常用接口技术,培养学生动手实践能力、分析问题和解决问题的能力。
具体目标如下: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. 完成微型计算机硬件组成实验,掌握微型计算机的基本组成和工作原理。
微机原理实验总结微机原理实验总结一、实验目的和背景:微机原理实验是计算机科学与技术专业的一门重要实验课程,通过该实验能够加深对微机原理的理论知识的理解,同时也提供了锻炼实验技能和培养解决问题能力的机会。
本次实验主要通过实际操作来学习CPU的工作原理,了解计算机的组成和运行过程,并通过搭建系统、调试和测试,加深对计算机工作原理的理解。
二、实验内容:本次实验主要包括以下几个模块的实验内容:1. 实验器材和器件的测试与调试;2. CPU运行状态及信号测试;3. 总线状态测试;4. 存储器的组织和访问方式测试;5. 输入输出接口测试。
三、实验方法和步骤:1. 实验器材和器件的测试与调试在进行实验之前,首先需要对实验器材和器件进行测试和调试,确保器材和器件的正常工作。
具体步骤如下:a. 检查硬件连接是否正确,包括主板、显示器、键盘等部件;b. 检查排线是否插好,开关是否处于正确的位置;c. 将电源插上,开机检查电源是否工作正常;d. 按照实验要求进行相应的仪器设备的调试。
2. CPU运行状态及信号测试通过搭建CPU运行测试电路,观察和测试CPU的运行状态和输出信号。
具体步骤如下:a. 按照实验要求搭建电路,包括主板、CPU、存储器、时钟等;b. 打开电源,上电后等待系统启动,观察CPU的运行状态;c. 使用示波器进行信号测试,观察时钟信号、读写信号、控制信号等。
3. 总线状态测试通过搭建总线状态测试电路,观察和测试总线的状态。
具体步骤如下:a. 按照实验要求搭建电路,包括总线、存储器等;b. 在开关电源的同时观察总线上的信号变化;c. 使用示波器进行信号测试,观察总线控制信号、数据信号等。
4. 存储器的组织和访问方式测试通过搭建存储器组织和访问方式测试电路,观察和测试存储器的组织和访问方式。
具体步骤如下:a. 按照实验要求搭建电路,包括存储器、地址线、数据线等;b. 打开电源,上电后等待系统启动;c. 运行程序,观察存储器的读写操作;d. 使用示波器等设备进行信号测试,观察地址信号、数据信号等。
实验名称:汇编语言程序设计实验日期:2023年3月10日实验地点:计算机实验室实验者:张三一、实验目的1. 熟悉汇编语言的基本语法和指令系统。
2. 掌握汇编语言程序设计的基本方法。
3. 通过实验,加深对微机原理的理解。
二、实验内容本次实验主要涉及以下内容:1. 数据传送指令的应用2. 算术运算指令的应用3. 控制转移指令的应用4. 子程序设计三、实验步骤1. 编写一个简单的程序,实现以下功能:(1)将数据0x1234存入寄存器AX;(2)将数据0x5678存入寄存器BX;(3)计算AX和BX的乘积,并将结果存入寄存器DX;(4)将乘积的高16位和低16位分别存入寄存器CX和AX。
2. 编写一个程序,实现以下功能:(1)将数据0x1A2B3C4D存入内存单元[0x1000];(2)从内存单元[0x1000]开始,读取连续4个字节的数据;3. 编写一个程序,实现以下功能:(1)定义一个子程序,实现两个整数的加法运算;(2)在主程序中调用该子程序,实现两个整数的加法运算。
四、实验结果与分析1. 数据传送指令的应用(1)将数据0x1234存入寄存器AX;MOV AX, 0x1234(2)将数据0x5678存入寄存器BX;MOV BX, 0x5678(3)计算AX和BX的乘积,并将结果存入寄存器DX;MUL BX(4)将乘积的高16位和低16位分别存入寄存器CX和AX; MOV CX, DXMOV AX, DX2. 算术运算指令的应用(1)将数据0x1A2B3C4D存入内存单元[0x1000];MOV [0x1000], 0x1A2B3C4D(2)从内存单元[0x1000]开始,读取连续4个字节的数据; MOV AX, [0x1000]MOV BX, [0x1000+2]MOV CX, [0x1000+4]MOV DX, [0x1000+6]MOV AH, 0x0EINT 0x103. 控制转移指令的应用(1)定义一个子程序,实现两个整数的加法运算;ADD procedure:ADD AX, BXRET(2)在主程序中调用该子程序,实现两个整数的加法运算;MOV AX, 0x1MOV BX, 0x2CALL ADDMOV CX, AX五、实验心得通过本次实验,我深刻理解了汇编语言的基本语法和指令系统,掌握了汇编语言程序设计的基本方法。
微机原理及应用实验报告微机原理及应用实验报告1. 引言微机原理及应用是计算机科学与技术专业的一门重要课程,通过该课程的学习和实验,我们可以深入了解微机的基本原理和应用技术。
本文将对我们进行的微机原理及应用实验进行详细报告,包括实验目的、实验内容、实验步骤、实验结果及分析等。
2. 实验目的本次实验的目的是通过实际操作,加深对微机原理的理解,掌握微机的基本组成和工作原理,以及学习并应用微机的常见应用技术。
3. 实验内容本次实验主要涉及以下内容:- 微机的基本组成和结构- 微机的工作原理- 微机的存储器和输入输出设备- 微机的指令系统和编程技术4. 实验步骤4.1 实验一:微机的基本组成和结构在这个实验中,我们首先学习了微机的基本组成和结构,包括中央处理器、存储器、输入输出设备等。
通过观察实际的微机硬件设备,我们对微机的组成有了更加直观的认识。
4.2 实验二:微机的工作原理在这个实验中,我们学习了微机的工作原理,包括指令的执行过程、中央处理器的工作原理等。
通过实际操作,我们对微机的工作过程有了更加深入的理解。
4.3 实验三:微机的存储器和输入输出设备在这个实验中,我们学习了微机的存储器和输入输出设备的原理和应用。
通过实际操作,我们了解了存储器的读写过程,以及输入输出设备的工作原理。
4.4 实验四:微机的指令系统和编程技术在这个实验中,我们学习了微机的指令系统和编程技术。
通过实际编写和执行简单的汇编语言程序,我们掌握了微机的编程技术,并了解了指令的执行过程。
5. 实验结果及分析通过以上实验,我们对微机的原理和应用有了更加深入的理解。
我们通过实际操作,掌握了微机的基本组成和结构,了解了微机的工作原理,熟悉了微机的存储器和输入输出设备,掌握了微机的指令系统和编程技术。
这些知识和技能对我们今后的学习和工作都具有重要的意义。
6. 总结通过本次微机原理及应用实验,我们深入了解了微机的基本原理和应用技术。
通过实际操作,我们对微机的组成和工作原理有了更加直观和深入的理解,掌握了微机的存储器和输入输出设备的原理和应用,以及微机的指令系统和编程技术。
实验题目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 。
微机原理da实验报告实验介绍本实验是微机原理课程的实践环节,旨在通过组装和调试一个简单的微机原理实验板,加深对微机原理的理解和应用。
实验材料- 微机原理实验板x1- 电源线x1- 扁平电线x10- LED灯x5- 电阻x5- 开关x5- 七段数码管模块x1- 七段数码管驱动芯片x1- 逻辑开关芯片x1实验原理微机原理实验板是由微处理器、存储器、输入输出设备和系统总线等组成的微型计算机系统。
微机原理实验板通过连接各个器件和电路,利用微处理器来控制和操作其他设备,实现各种功能。
实验步骤1. 将微机原理实验板放在平整的工作台上,并且确定没有裸露的金属物体接触电路,以防止静电对电路的损害。
2. 使用扁平电线连接实验板和电源,注意正确连接正负极。
3. 将扁平电线连接到实验板上的开关模块,并确保开关处于关闭状态。
4. 连接LED灯和电阻,通过扁平电线将它们与开关模块连接起来。
5. 使用扁平电线将七段数码管模块和驱动芯片连接到实验板上的特定接口。
6. 检查所有连接并确保紧固可靠。
7. 打开电源,观察LED灯和七段数码管的显示效果。
8. 打开开关,观察LED灯是否亮起,七段数码管是否显示正确的数字。
实验结果经过实验,我们成功搭建了一个简单的微机原理实验板,并能够通过开关控制LED灯的亮灭和七段数码管的数字显示。
实验结果符合预期。
实验总结通过本次实验,我对微机原理有了更深入的理解。
通过组装和调试实验板,我掌握了实际操作微机原理的技能,对微型计算机系统的构成和工作原理有了更直观的认识。
通过观察实验结果,我进一步加深了对微处理器、存储器和输入输出设备的理解,并加深了对微机原理实验的兴趣。
实验心得微机原理实验板的搭建过程虽然简单,但要求仔细、耐心和细致。
在实验过程中,我发现了一些连接错误和接触不良的问题,通过排除故障并调整连接,最终解决了问题。
这让我懂得了在实际操作中需要仔细检查和耐心排查问题,以保证实验的顺利进行。
通过本次实验,我深刻认识到微机原理在现代计算机技术中的重要性,掌握了一些基本的电路组装和调试技巧,并体验了微机原理的实际应用。
微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
第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. 实际操作微机系统,掌握常见的微机指令格式和计算方法。
二、实验仪器和材料1. 个人电脑;2. 操作系统软件;3. 汇编语言开发环境。
三、实验内容1. 安装操作系统软件,确保系统正常运行;2. 学习并掌握微机硬件系统的主要组成部分,包括中央处理器(CPU)、内存、输入输出设备等;3. 编写并调试汇编语言程序,运行计算程序实现加减乘除等基本运算;4. 分析程序运行过程中的指令执行情况,如寄存器状态的变化;5. 实验过程中要注意安全操作,避免人为损坏实验设备。
四、实验结果与分析通过安装操作系统软件,我们确保了系统正常运行。
在学习微机硬件系统的组成和功能时,我们了解了中央处理器(CPU)的作用和主要组成部分,以及内存和输入输出设备的作用。
在编写和调试汇编语言程序的过程中,我们成功实现了加减乘除等基本运算,并通过分析程序运行过程中的指令执行情况,了解了寄存器状态的变化。
五、实验心得通过这次实验,我们更深入地了解了微机原理的基本概念和工作原理。
通过实际操作微机系统,我们掌握了常见的微机指令格式和计算方法。
实验过程中,我们加深了对微机硬件系统的理解,也学会了如何编写和调试汇编语言程序。
这次实验不仅提高了我们的实际操作能力,还培养了我们分析问题和解决问题的能力。
总之,通过这次微机原理实验,我们对微机系统有了更深入的了解,也掌握了更多实际应用的知识和技能。
这对我们今后学习和工作都会有很大的帮助。
实验一显示程序实验一、实验目的1. 掌握在PC机上以十六进制形式显示数据的方法;2. 掌握部分DOS功能调用使用方法;3. 熟悉Tddebug调试环境和Turbo Debugger的使用。
二、实验所用设备1. PC微机一台。
三、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。
实验中可使用DOS功能调用(INT21H)。
(1) 显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2) 显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3) 键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4) 返回DOS系统入口:AH=4CH调用参数:AL=返回码四、实验步骤1.运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1-1示;2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3.使用Rmrun菜单中的Run,运行程序,观察运行结果;4.使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5.更改数据区中的数据,考察程序的正确性。
图1-1 显示程序实验流程图五、参考程序清单六、实验报告内容及要求写出程序调试过程及运行情况。
1.将参考程序写入轻松汇编编辑框。
2.点击保存,然后编译,结果框显示编译成功。
3.点击生成,显示链接成功。
4.点击运行,显示如图:实验二数据传送实验一、实验目的1. 熟悉Tddebug调试环境和Turbo Debugger的使用;2. 掌握与数据有关的不同寻址方式。
二、实验所用设备1. PC微机一台。
三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
微机原理及接口技术实验报告班级:光094-2姓名:....学号:20091350429实验一熟悉宏汇编程序及debug一.实验目的1.学习并掌握汇编语言指令寻址方式2.熟悉在PC机上用DEBUG调试和运行汇编语言指令的过程。
二.实验内容根据给定寄存器内容及存储单元内容,运行给定指令,观察记录运行结果1、给定的寄存器内容及存储单元内容(DS)=2000H,(SI)=0002H,(BX)=0100H(20100H)=1H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21203H)=65H2、指令(1)M OV AX,1200H(2)M OV AX,BX(3)M OV AX,[1200H](4)M OV AX,[BX](5)M OV AX,1100H[BX](6)M OV AX,[BX][SI](7)M OV AX,1100H[BX][SI]四.调试步骤1.运行DEBUG。
2.用A命令汇编指令(1)3.按给定寄存器和存储单元内容修改寄存器和存储单元内容。
4.单步运行指令,查看结果5.重复上述步骤,调试指令(2)——(7)指令寻址方式源操作数有效地址源操作数物理地址指令运行结果(AX)1 立即寻址 0100 20100 12002 寄存器寻址 0103 20103 01003 直接寻址 1200 21200 4c2a4 寄存器间接寻址0100 20100 34125 寄存器相对寻址1200 21200 4c2a6 基址变址寻址 0102 20102 78567 相对基址变址寻址1202 21202 65b7 六.思考题1、汇编语言指令有哪些寻址方式?用于寻址的寄存器有哪些?立即数寻址、直接寻址,寄存器寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,基址变址相对寻址。
对于16位数据,寄存器可以是AX,BX,CX,DX,SI,DI,SP,BP; 对于8位数据,寄存器可以是AH,AL,BH,BL,CH,CL,DH,DL实验二寻址方式练习及多字节运算程序一.实验目的1.学习并掌握数据传送指令和算术运算指令2.熟悉在PC机上编辑、汇编、连接、调试与运行汇编语言程序的过程。
班级自动化学号姓名实验一系统认识实验一实验目的掌握教学系统的基本操作二实验设备PC机一台masm软件三实验内容及步骤(1)输入程序并检查无误,经汇编连接后装入系统(2)输入E3500后回车,在3500-3510单元中分别送入00~09十个数据(3)按“T“键运行以上程序直至程序运行完(4)输入D3600后回车,查看3600单元后面的数据四程序及其显示的结果(1)程序(2)显示的结果实验三运算类编程实验一实验目的(1)掌握使用运算类指令编程及调试方法(2)掌握运算类指令对各状态标志位的影响及其测试方法二实验设备PC一台masm软件三实验内容及步骤(1)二进制双精度加法运算(2)输入程序并检查无误,经汇编连接后装入系统(3)用U0000:2000查看MOV AX,DA TA的语句,即得到数据段段位置CS:1412用E命令E1412:0000回车,给XL,YL,YH赋值存入二进制数A0,65,15,00和9E,B7,21,00(4)用G=0000:2000,运行以上程序(5)输入D1412:0008,检验显示的结果是否为:3E,1D,17,00四实验程序五程序显示的结果实验四分支程序设计实验一实验目的:(1)掌握分支程序的结构(2)掌握分支程序的设计,调试方法二实验设备:PC机一台masm软件三实验内容设计一数据块间的搬移程序。
设计思想:程序要求把内存中一数据区传送到另一存储区。
源数据块和目的数据块在存储中可能有三种情况,对于两个分离的情况,数据的传送从数据块的首位置开始,或者从数据块的末位置开始。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏,可以得到以下结论:(1)当源数据块首址大于目的块首址时,从数据块首址开始传送数据。
(2)当源数据块首址小于目的块首址时,从数据块末址开始传送数据。
四实验步骤(1)按实验流程图设计编写实验程序(2)输入程序并检查无误后,经汇编,连接后装入系统(3)用E命令在以SI为起址的单元中填入十六个数(4)用G=0000:2000运行实验程序(5)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同五实验程序及结果显示(1)实验程序(1)实验结果显示实验五循环程序设计一实验目的(1)加深对循环结构的理解(2)掌握循环结构程序设计的方法(3)熟练掌握调试循环程序的方法二实验设备:PC机一台masm软件三实验内容求数据区内负数的个数:设数据区的第一单元存放区内单元数据的个数,从第二单元开始开始存放数据,在区内最后一个单元存放结果。
西安交通大学实验报告课程_ 微机与接口技术第页共页系别__ 生物医学工程_______ __ 实验日期: 年月日专业班级___ __组别___ __ 交报告日期: 年月日姓名__ 学号_ _报告退发 ( 订正、重做 )同组人_ 教师审批签字实验一汇编语言程序设计一、实验目的1、掌握Lab6000p实验教学系统基本操作;2、掌握8088/8086汇编语言的基本语法结构;3、熟悉8088/8086汇编语言程序设计基本方法二、实验设备装有emu8086软件的PC机三、实验内容1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。
编程并显示结果:如果数组是无符号数,求出最大值,并显示;如果数组是有符号数,求出最大值,并显示。
2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:”3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:”4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。
在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序)5、键盘输入一个小写字母(a~z),转换成大写字母显示:请输入一个小写字母(a~z):转换后的大写字母是:6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH四、实验代码及结果1.1、实验代码:DATA SEGMENTSZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组SHOW DB 'THE MAX IS: ','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;把数据的基地址赋给DSMOV DS,AXMOV DX,OFFSET SHOW ;调用DOS显示字符串MOV AH,09HINT 21HMOV SI ,OFFSET SZ ;数组的偏移地址赋给SIMOV CX,10 ;存进数组的长度给CXMOV DH,80H ;将数组的第一个数写进DHNEXT:MOV BL,[SI] ;将数组的第一个数写进BLCMP DH,BL ;比较DH和BL中数的到校JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DHNEXT1:INC SI ;偏移地址加1LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值;接下来的程序是将将最大值DH在屏幕上显示输出MOV BX,02HNEXT2:MOV CL,4ROL DH,CL ;将DH循环右移四位MOV AL,DHAND AL,0FH ;将AL高位清零,一位一位进行ASCII码转换CMP AL,09H ;与09H比较大小JBE NEXT3 ;若小于,跳转至NEXT3,证明数值在0-9之间ADD AL,07H ;若大于,则证明为字母,因为字母与数字的ASCII码相差7,所以要加上7NEXT3:ADD AL,30H ;因为转换为ASCII码要加30HMOV DL,ALMOV AH,2 ;DOS中断显示INT 21HDEC BXJNZ NEXT2MOV DL,'H'MOV AH,2INT 21HCODE ENDSEND START实验结果:1.2、实验代码DATA SEGMENTSZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H ;存进数组SHOW DB 'THE MAX IS: ','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;把数据的基地址赋给DSMOV DS,AXMOV DX,OFFSET SHOW ;调用DOS显示字符串MOV AH,09HINT 21HMOV SI ,OFFSET SZ ;数组的偏移地址赋给SIMOV CX,10 ;存进数组的长度给CXMOV DH,80H ;将数组的第一个数写进DHNEXT:MOV BL,[SI] ;将数组的第一个数写进BLCMP DH,BL ;比较DH和BL中数的到校JGE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1;此为无符号数与有符号数的唯一差别,JGE是无符号数的跳转MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DHNEXT1:INC SI ;偏移地址加1LOOP NEXT ;循环,CX减1,一直到CX减为0,DH中存数组的最大值;接下来的程序是将最大值DH在屏幕上显示输出MOV BX,02HNEXT2:MOV CL,4ROL DH,CL ;将DH循环右移四位MOV AL,DHAND AL,0FH ;将AL高位清零,一位一位进行ASCII码转换CMP AL,09H ;与09H比较大小JBE NEXT3 ;若小于,跳转至NEXT3,证明数值在0-9之间ADD AL,07H;若大于,则证明为字母,因为字母与数字的ASCII码相差7,所以要加上7NEXT3:ADD AL,30H ;因为转换为ASCII码要加30HMOV DL,ALMOV AH,2 ;DOS中断显示INT 21HDEC BXJNZ NEXT2MOV DL,'H'MOV AH,2INT 21HCODE ENDSEND START实验结果2、实验代码DATA SEGMENTBNUM DW 0500HDNUM DB 4 DUP()MES DB 'THE BCD OF '500H' IS: ','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES ;将字符串偏移量写入DXMOV AH,09HINT 21HMOV AX,BNUM ;将0500H存入AX中LEA BX,DNUM ;取DNUM的偏移量MOV DL,0;计算1000的个数COUNT1:SUB AX,03E8H ;AX-1000JC NEXT1 ;不够减,即若CF=1,有借位,转NEXT1 INC DL ;DL+1JMP COUNT1 ;跳转AGAIN1 NEXT1:ADD AX,03E8H ;AX+1000MOV [BX],DL ;将DL(即千位数)存入DNUM中INC BX ;BX+1MOV DL,0 ;DL清零;计算100个数COUNT2:SUB AX,0064H ;AX-100JC NEXT2INC DLJMP COUNT2NEXT2:ADD AX,0064HMOV [BX],DL ;将DL(即百位数)存入DNUM中INC BXMOV DL,0;计算10个数COUNT3:SUB AX,000AH ;AX-10JC NEXT3INC DLJMP COUNT3NEXT3:ADD AX,000AHMOV [BX],DL ;将DL(十位数)存入DNUM中INC BXMOV [BX],AL ;计算个位数MOV CX,4; 接下来的程序是将数值转化为ASCII并在屏幕上显示LEA SI,DNUM ;取DNUM的地址偏移量NEXT4:MOV AL,[SI] ;将DNUM中所存的各个数值转换为ASCII码;;在屏幕上输出显示CMP AL,09HJBE NEXT5ADD AL,07HNEXT5:ADD AL,30HMOV DL,ALMOV AH,2INT 21HINC SIDEC CXJNZ NEXT4CODE ENDSEND START实验结果3、实验代码DATA SEGMENTOUP DB 'THE ASCII OF 7963 IS:','$'A1 DB 07H,09H,06H,03HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET OUPMOV AH,09HINT 21HMOV CL,4MOV SI,0NEXT:MOV AL,A1[SI] ;将A1的第SI个数据传给ALMOV BL,ALOR AL,30H ;加30转换为ASCII码值SHR AL,4AND AL,0FH ;将右移后的高位清零ADD AL,30H ;因为ASCII码与值之间相差30 MOV DL,ALMOV AH,2 ;输出对应的ASCII码INT 21HMOV AL,BLAND AL,0FHADD AL,30HMOV DL,ALMOV AH,02HINT 21HMOV DL,' 'MOV AH,02HINT 21HINC SILOOP NEXTEXIT:MOV AH,4CHINT 21H CODE ENDSEND START 实验结果4、实验代码DATA SEGMENTYI DB 100 DUP(88H)ER DB 100 DUP(00H) ;定义数组MES DB 'THE NUMBER OF COUNTER IS: ','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARSTART: MOV AX,DATAMOV DS,AXMOV CL,100 ;计数器初值MOV CH,00H ;转移次数统计,初值LEA SI,YI ;将内存块1的偏移量给SILEA DI,ER ;将内存块2的偏移量给DI NEXT: MOV AL,[SI]MOV [DI],AL ;将YI中的数据复制到ER中INC SIINC DIINC CHMOV DX,OFFSET MES ;显示字符串MOV AH,9INT 21HCALL COUNT ;调用子程序DEC CL ;计数减1JNZ NEXT ;计数不为零,跳转执行HLTMAIN ENDP ;主程序结束;下面是子程序,实现屏幕显示转移次数功能COUNT PROC NEAR ;定义子程序属性PUSH CX ;CX进栈MOV DH,CHMOV BX,02HNEXT2: MOV CL,4ROL DH,CL ;将DH循环右移四位MOV AL,DHAND AL,0FH ;将AL高位清零CMP AL,09H ;与09H比较大小JBE NEXT3 ;若小于,跳转至NEXT3ADD AL,07HNEXT3: ADD AL,30H ;加30HMOV DL,ALMOV AH,2 ;DOS中断显示INT 21HDEC BXJNZ NEXT2MOV DL,'H' ;显示HMOV AH,2INT 21HMOV DL,0AH ;回车MOV AH,2INT 21HMOV DL,0DH ;换行MOV AH,2INT 21HPOP CX ;CX出栈RETCOUNT ENDP;子程序结束CODE ENDSEND START实验结果5、实验代码DATA SEGMENTINP DB 'PLEASE INPUT (a~z): ','$' ;设置字符串OUP DB 'THE TRANSFORMATION(A~Z) IS:','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARSTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET INP ;显示字符串,提示输入MOV AH,9INT 21HMOV AH,1 ;DOS中断调用,从键盘中读取一个字符INT 21HPUSH AX ;AX入栈PUSH DXMOV DL,0DH ;中断调用,回车MOV AH,2INT 21HMOV DL,0AH ;中断调用,换行MOV AH,2INT 21HMOV DX,OFFSET OUP ;显示字符串,输出提示MOV AH,9INT 21HPOP DX ;DX出栈POP AX ;AX出栈SUB AL,32 ;AL减去32,使大写转化为小写;大小写之间的ASCII码值相差32MOV DL,AL ;DOS中断显示结果MOV AH,2INT 21HMAIN ENDPCODE ENDSEND START实验结果:6、实验代码DATA SEGMENTYI DB 44H,33H,22H,99H,00HER DB 44H,33H,22H,99H,00H ;装载数据,必须有后面00HSUM DB 5 DUP()OUP DB '99223344H + 99223344H= ','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARSTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET OUP ;显示字符串MOV AH,9INT 21HLEA BP,YI ;在BP中装入YI的地址偏移量LEA SI,ER ;在SI中装入ER的地址偏移量LEA DI,SUM ;在DI中装入SUM的地址偏移量MOV CX,05 ;计数初值CLC ;进位位清零NEXT: MOV AL,[BP] ;将YI中的数据赋给ALMOV AH,[SI] ;将ER中的数据赋给BLADC AL,AH ;YI和ER中的数据带进位的相加MOV [DI],AL ;将相加的结果保存在SUM中INC SIINC DIINC BPDEC CXJNZ NEXT ;结果不为零,跳转到NEXT;上面的程序已经将相加的结果存在了SUM中,下面的程序是将SUM中的结果转化为ASCII 显示MOV CH,05 ;计数器初值NEXT1: MOV DH,[DI-1] ;将所得结果最高位赋给DHMOV BX,02HNEXT2: MOV CL,4ROL DH,CL ;将DH循环右移四位MOV AL,DHAND AL,0FH ;将AL高位清零CMP AL,09H ;与09H比较大小JBE NEXT3 ;若小于,跳转至NEXT3ADD AL,07HNEXT3: ADD AL,30H ;加30HMOV DL,ALMOV AH,2 ;DOS中断显示INT 21HDEC BXJNZ NEXT2DEC DIDEC CHJNZ NEXT1 ;循环显示SUM中的值MOV DL,'H' ;显示HMOV AH,2INT 21HMAIN ENDPCODE ENDSEND START实验结果五、分析与总结通过实验熟练了8086的指令系统和基本的程序设计格式,实验中出现的各种问题通过一步步的分析自行解决的过程,提高了对于各种语句、指令的运用熟练程度实验二8255可编程并行接口实验一、实验目的1、掌握8255芯片结构及工作方式;2、熟悉8255并行口扩展的编程。