四川大学微机原理实验报告

合集下载

微机原理实验报告册(3篇)

微机原理实验报告册(3篇)

第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。

二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。

2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。

3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。

4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。

5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。

6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。

微机原理实验报告

微机原理实验报告

微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。

本实验报告将介绍我对微机原理实验的学习和思考。

实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。

通过实际操作,我加深了对计算机内部数据表示方式的理解。

这对于后续学习计算机系统结构和编程语言至关重要。

实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。

这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。

实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。

这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。

实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。

实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。

这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。

实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。

实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。

通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。

未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。

我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。

四川大学微机原理实验报告

四川大学微机原理实验报告

《微机原理及接口技术实验报告》学院:电气信息学院班级: 109班老师:罗江陶学号: 1143031270姓名:实验一汇编语言程序的上机步骤一、实验目的:1、了解汇编语言程序的执行流程。

2、熟悉和使用DEBUG调试工具,分析和读懂一些及硬件相关的小程序。

3、通过对程序的分析,理解计算机程序的执行过程。

4、了解并逐步熟悉汇编语言的编辑方法及特点.5、复习8086汇编语言的段结构、常用的指令及伪指令、存储空间的分配等。

6、掌握汇编语言的编辑、汇编及连接的过程。

7、了解并逐步掌握运用DEBUG进行调试汇编语言程序二、实验内容:以文件名为1.asm源程的序为例,学习汇编语言的上机步骤。

汇编语言程序MASM软件由编辑器,汇编MASM.EXE程序,连接LINK.EXE程序以及DUEBUG.EXE调试程序四个部分组成。

汇编语言编制完成后,在计算机上的操作过程就分为四个阶段。

1. 编辑:首先输入源程序:在记事本里录入,注意在保存时文件格式必须选择所有文件,文件后缀名为.ASM, 即保存时文件名为XXX.asm。

2.用汇编程序MASM.Exe对源程序.ASM文件汇编,生成目标文件.OBJ:双击MASM软件中的MASM.Exe文件框,在命令行后键入源程序名XXX.asm,(如果源程序及MASM软件在同一路径下,可以只键入文件名,而不要后缀)3.连接LINK.EXE双击MASM软件中的LINK.Exe文件框,在命令行后键入目标文件名XXX.OBJ(如果源程序,目标文件及MASM软件在同一路径下,可以只键入文件名,而不要后缀)如果连接没有错误,就会产生一个XXX.EXE的可执行文件,如果.OBJ文件有错误,连接时会指出错误的原因。

4.运行和调试DEBUG.exe运行可执行文件,即双击XXX.EXE文件框即可,或在DOS下运行此程序,E:\XXX.EXE。

三、程序流程图:四、程序清单及注释:DATA SEGMENTNUM1 DB 35,35HNUM2 DW 35,35HNUM3 DB 4 DUP (34,3 DUP (34H))NUM4 DB '34AB'NUM5 DW '34','AB'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BX,OFFSET NUM1MOV AL,[BX]MOV BX,OFFSET NUM5MOV AX,[BX]MOV AH,4CHINT 21HCODE ENDSEND START五、运行结果:将以上程序在笔记本中保存为xueyuan1.ASM 编译后显示编译成功:运行结果如下:运行可执行文件出现此界面后“闪退”六、实验心得:通过本次实验,我了解了一个汇编程序在计算机上的执行步骤,如何实现一个汇编程序的编辑、连接、运行。

出错信息(川大微机原理实验资料和内容以及MASM使用方法)

出错信息(川大微机原理实验资料和内容以及MASM使用方法)

出错信息在使用MASM5.0对源程序进行汇编时,对于有错误的或可置疑的语句,MASM将显示出相关出错或警告信息。

出错信息分为两类:一类是带编号的出错代码信息。

这些错误或警告与源程序中的某一个语句(或指令)行代码有关,并赋以相应的编码。

在显示出错代码的同时,还给出了简要的注释。

另一类出错信息没有编号,他们是针对整个汇编程序的,而不是针对某一语句行的,因而,只给出了简要的注释。

一、带编号的错误带有编号的错误信息的显示格式如下:sourcefile (line):code messagesourcefile是出错的源程序文件名。

如果定义于INCLUDE文件中的宏有错,则源程序文件名是指引用宏并对其进行展开的那一个程序文件名。

line是MASM无法进行汇编的那条语句源程序中的行号。

Code是以Microsoft 语言程序格式指定的代码。

它以error或warning开始,后跟5个字符的代码。

第一个字符表示编程语言,汇编语言是字符A;第二个代码是数字符,表示警告级别;2表示严重错误(Severe Errors);4表示严重警告(Severe Warnings);5表示建议警告(Advisory Warnings);最后三个数字是错误编号。

message是对该错误或警告的简要说明。

比如:test.ASM(33):error A006:Phase error between passes上述信息表明,在源程序test.ASM的33行中,有006号严重错误。

下面,将按照编号列出错误信息,并给与简要的解释。

错误代码错误描述0Block nesting error块嵌套错误。

指嵌套的过程、段、结构、宏或非正常结束。

例如在某嵌套语句序列中,有外层的结束语句,而无内层的结束语句,所造成的嵌套错误。

1 Extra characters on line在一语句行中有多余的字幅。

指在一行中除了已有该汇编语句的全部信息外,还有多余的字幅。

微机原理的实验报告

微机原理的实验报告

一、实验目的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.进一步学习程序的调试。

二、实验内容:1.编制程序,对这组数进行排序,并输出原数据及排序后数据;2.利用DEBUG调试工具,用D0命令,查看排序前后,内存数据的变化;3. 去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值;4. 用学过的压栈PUSH和出栈POP指令,将平均值按位逐个输出(即输出263);5将平均值263转化为二进制串,并将这组二进制串输出。

6.所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300等),所有数据结果能清晰地显示在屏幕上。

DATAS SEGMENTVAR DW 300,250,280,240,260D1 DB 0DH,'YUAN SHU JU',0DH,0AH,'$'D2 DB 0DH,0AH,'PAI XU HOU',0DH,0AH,'$'D3 DB 0DH,0AH,'ZUI DA ZHI',0DH,0AH,'$'D4 DB 0DH,0AH,'ZUI XIAO ZHI',0DH,0AH,'$'D5 DB 0DH,0AH,'PING JUN ZHI',0DH,0AH,'$'D6 DB 0DH,0AH,'AN WEI SHU CHU',0DH,0AH,'$'D7 DB 0DH,0AH,'ER JIN ZHI SHU CHU',0DH,0AH,'$' DATAS ENDSSTACKS SEGMENTS DB 100 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:B: MOV AX,DATASMOV DS,AXMOV CX,5MOV DX,OFFSET D1 ;输出‘yuan shu ju’MOV AH,9INT 21HMOV SI,0CALL OUTP ;调用输出MOV DX,1AG: CALL SUBP ;调用冒泡法INC DXLOOP AGMOV CX,5MOV DX,OFFSET D2 ;输出‘PAI XU HOU’MOV AH,9INT 21HMOV SI,0CALL OUTP ;调用输出,输出排序后数据MOV DX,OFFSET D3 ;输出‘ZUI DA ZHI’MOV AH,9INT 21HMOV SI,8MOV BX,[SI]CALL OUTP2 ;输出最大值MOV DX,OFFSET D4 ;输出‘ZUI XIAO ZHI’MOV AH,9INT 21HMOV SI,0MOV BX,[SI]CALL OUTP2MOV DX,OFFSET D5 ;输出‘PING JUN ZHI’MOV AH,9INT 21HMOV BX,0 ;求平均值MOV DX,0ADD BX,[SI+2]ADD BX,[SI+4]ADD BX,[SI+6]MOV AX,BXMOV BX,3DIV BXMOV BX,AXPUSH BX ;BX入栈保护CALL OUTP2 ;输出平均值MOV DX,OFFSET D7 ;输出‘ER JIN ZHI SHU CHU’MOV AH,9INT 21HPOP BX ;BX出栈MOV CX,16ER: SHL BX,1 ;二进制循环输出/左移一位MOV DL,0ADC DL,0 ;通过加一加进位ADD DL,30HMOV AH,2 ;二进制输出INT 21HLOOP ERMOV AH,4CHINT 21HSUBP PROC ;子程序,冒泡法PUSH CX ;CX入栈保护INC CXMOV SI,0RECMP:MOV AX,VAR[SI] ;循环排序CMP AX,VAR[SI+2]JLE NOCHXCHG AX,VAR[SI+2]XCHG AX,VAR[SI]NOCH: INC SIINC SI ;SI自加二指向下一个数LOOP RECMPPOP CXRETSUBP ENDPOUTP PROC ;子程序,十进制转换成ASCII码PUSH DXPUSH CXCHANGE: MOV DX,0MOV AX,[SI]MOV BX,10DIV BXADD DX,30HPUSH DX ;堆栈压入最低位MOV DX,0DIV BXADD DX,30HPUSH DX ;堆栈压入中间位MOV DL,ALADD DL,30HMOV AH,2 ;输出最高位INT 21HPOP DX ;弹出并输出中位MOV AH,2INT 21HPOP DX ;弹出并输出高位MOV AH,2INT 21HADD SI,2 ;SI加二,指向下一个数MOV DL,0 ;输出空格MOV AH,2INT 21HLOOP CHANGE ;循环直至全部输出POP CXPOP DXRETOUTP ENDPOUTP2 PROC ;子程序2,十进制转换成ASCII码,不循环PUSH DXPUSH CXMOV DX,0MOV AX,BXMOV BX,10DIV BXADD DX,30HPUSH DXMOV DX,0DIV BXADD DX,30HPUSH DXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP DXMOV AH,2INT 21HPOP DXMOV AH,2INT 21HMOV DL,0MOV AH,2INT 21HPOP CXPOP DXRET OUTP2 ENDP CODES ENDSEND BEND START 五、运行结果:六、实验心得:(一)我认为程序编写最难的是总体思路的把握:怎样才能实现想要的功能,怎样以更简洁的程序实现想要的功能。

微机原理实验报告

微机原理实验报告

微机原理实验报告一、实验目的本次微机原理实验的主要目的是通过实际操作和观察,深入理解微机系统的工作原理和组成结构,掌握微机系统的编程和调试方法,提高我们对微机原理的实际应用能力。

二、实验设备1、计算机一台2、微机原理实验箱一套三、实验内容1、 8255 并行接口实验了解 8255 芯片的工作原理和编程方法。

通过编程实现 8255 芯片的 A 口、B 口、C 口的输入输出控制。

2、 8253 定时/计数器实验掌握 8253 芯片的工作方式和编程要点。

利用 8253 芯片实现定时和计数功能。

3、 8259 中断控制器实验学习 8259 芯片的中断管理机制。

编写中断服务程序,实现中断响应和处理。

四、实验原理1、 8255 并行接口8255 是一种可编程的并行接口芯片,具有 A、B、C 三个 8 位端口。

通过对控制字的编程,可以设置各个端口的工作方式为输入或输出。

2、 8253 定时/计数器8253 包含三个独立的 16 位计数器,每个计数器可以工作在不同的方式下,如方式 0 到方式 5。

通过对计数器的初值设置和控制字编程,可以实现定时和计数功能。

3、 8259 中断控制器8259 用于管理外部中断请求,可实现中断优先级的判断和中断嵌套。

通过对 8259 的初始化编程,可以设置中断触发方式、中断向量等。

五、实验步骤1、 8255 并行接口实验连接实验电路,将 8255 芯片与实验箱上的相关引脚连接好。

编写程序,设置 8255 的控制字,使 A 口为输出,B 口为输入。

向 A 口输出数据,从 B 口读取数据,并观察实验结果。

2、 8253 定时/计数器实验连接实验电路,将 8253 芯片与实验箱上的相关引脚连接好。

编写程序,设置 8253 计数器 0 的工作方式为方式 2,初值为 1000。

启动计数器,观察输出引脚的波形变化。

3、 8259 中断控制器实验连接实验电路,将 8259 芯片与实验箱上的相关引脚连接好。

微机原理的实验报告

微机原理的实验报告

微机原理的实验报告一、实验目的本实验旨在深入理解微机原理的相关知识,并通过实践操作,掌握微机原理的实验方法与技巧。

二、实验内容1. 搭建微机实验系统:根据实验所需,搭建适当的微机实验系统,包括各种硬件设备的连接与设置。

2. 硬件接口的实验:通过连接不同的硬件接口,进行实验操作,学习硬件接口的使用方法和原理。

3. 程序设计与调试实验:使用相应的汇编语言或高级语言,编写程序并进行调试,观察程序的执行结果。

4. 中断实验:通过调用不同的中断服务例程,进行实验操作,学习中断的使用原理和应用场景。

三、实验步骤与结果1. 实验步骤:(1) 搭建微机实验系统:按照实验指导书的要求,连接各种硬件设备,确保能够正常工作。

(2) 硬件接口的实验:选择一个硬件接口,例如并行口,通过编写相应的程序,实现读取和输出数据的功能。

观察实验现象并记录。

(3) 程序设计与调试实验:根据实验要求,选择适当的编程语言,编写相应的程序,并进行调试。

观察程序的执行结果,并记录相关数据。

(4) 中断实验:选择一个中断服务例程,例如键盘中断,通过编写相应的程序,实现对键盘输入的响应。

观察实验现象并记录相关数据。

2. 实验结果:(1) 硬件接口的实验结果:通过编写程序并连接硬件接口,成功读取和输出数据,实现了相应的功能。

(2) 程序设计与调试实验结果:编写的程序能够正确执行,并得到了预期的结果。

(3) 中断实验结果:编写的程序能够响应相应的中断信号,并实现了对键盘输入的处理。

四、实验分析与讨论1. 实验分析:通过本次实验,我们深入了解了微机原理的相关知识,并通过实践操作,掌握了微机原理的实验方法和技巧。

2. 实验讨论:在实验过程中,我们遇到了一些困难和问题,例如硬件接口的连接和调试,程序的编写和调试等。

但通过彼此的合作与讨论,我们最终解决了这些问题,并成功完成了实验。

五、实验总结通过本次实验,我们对微机原理有了更深入的理解,并通过实践操作,掌握了微机原理的实验方法和技巧。

四川大学微机原理实验报告

四川大学微机原理实验报告

微机原理实验报告学院:专业班级:姓名学号实验一汇编语言编程基础1.3汇编语言程序上机操作和调试训练一.功能说明运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。

运用LINK.EXE文件进行连接,形成*.EXE文件。

仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。

运用DEBUG。

EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。

再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。

二.程序流程图三.程序代码修改后的程序代码如下:DATA SEGMENTA DB 9,6,8,7,5B DB 5C DB 5 DUP (0)N EQU 5DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXCLDLEA SI,ALEA DI,CMOV CX,NMOV AH,0LP1: LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2: MOV DL,[DI]ADD DL,30HMOV AH,2INT 21HINC DILOOP LP2MOV AH,4CHINT 21HCODE ENDSEND START四.实验感想和收获通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。

在这次试验中我也遇到了一些困难。

在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。

我这才想起来我的操作系统是64位的,和该软件版本不兼容。

微机原理综合实训报告

微机原理综合实训报告

通过本次微机原理综合实训,使学生掌握微型计算机的基本组成、工作原理以及常用接口技术,培养学生动手实践能力、分析问题和解决问题的能力。

具体目标如下: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. 完成微型计算机硬件组成实验,掌握微型计算机的基本组成和工作原理。

连接(川大微机原理实验资料和内容以及MASM使用方法)

连接(川大微机原理实验资料和内容以及MASM使用方法)

连接无论是单模块程序,还是多模块程序,虽然在对每一个模块汇编后都生成了相应的目标文件.OBJ,但它们却是不可运行的。

只有在将它们连接(LINK)后,才能生成一个可执行(运行)的.EXE文件或程序。

8086目标模块连接程序LINK,能够把一个或多个独立的目标文件.OBJ和定义于库文件.LIB中的子程序与变量,连接装配成一个可重定位的可执行文件.EXE。

在连接过程中,除了生成.EXE程序外,用户还可以根据需要,生成相应的内存映像文件.MAP。

LINK的操作在DOS环境下使用LINK,同使用MASM一样,也有提示应答和命令行两种使用法。

1.提示应答方式在DOS提示状态下,键入LINK命令后,便显示版权信息,接着依次显示目标模块文件名,可执行文件的文件名、映像文件的文件名和库文件名等提示信息。

用户只需根据提示信息,键入或选用相应的文件名就可以了。

例如:C:\MASM >LINKMicrosoft ® Corp. Overlay Linker Version 3.60Copyright © Microsoft Corp. 1983-1987,All rights reservedObject Modules[.OBJ]:EXAMPLE↙—连接EXAMPLE.OBJ目标模块Run File [EXAMPLE.EXE]:↙—生成的默认EXAMPLE.EXE文件List File[NUL.MAP]:↙—默认不生成.MAP文件Libraries[.LIB]: ↙—连接时不需要库文件如果需要连接多个目标模块,则在相邻模块文件名间用空格(Space)或“+”号隔开。

如果选用默认文件名,只需按回车键就可以了。

通常,汇编程序不需要任何库文件,这时也只需按回车键就行了。

假设有MODA.OBJ、MODB.OBJ和MODC.OBJ三个目标模块,程序中调用了MA TH.LIB 库中的某些子程序,且该库文件存放在B盘上的lib子目标中,希望连接时能生成MODA.EXE和MODA.MAP。

四川大学微机借口模数转换实验报告

四川大学微机借口模数转换实验报告

四川大学微机接口模数转换实验报告实验步骤:1.单极性输入信号的A/D转换:⑴接线:按实验电路图接线(可用IN1---IN5任一个口输入,端口地址00A1---00A5)⑵编程:(见程序清单1)程序结构设计---程序框图设计---代码编辑----编译---链接⑶调试:加载---调试⑷运行:①.运行程序②.改变输入信号的电平值,记录转换结果(数据)⑸测量十组数据,并将实验结果记录于数据记录表中:序号转换数据转换(计算)值实测值误差2.双极性输入信号的A/D转换:⑴接线:按实验电路图接线(可用IN6或IN7口输入,端口地址00A6,00A7)注意:如果双极性信号连在ADC的单极性输入端(IN0~IN5)很可能烧毁芯片。

⑵编程:(见程序清单2)程序结构设计---程序框图设计---代码编辑----编译---链接⑶调试:加载---调试⑷运行:①.运行程序②.改变输入信号的电平值,记录转换结果(数据)⑸测量十组数据,并将实验结果记录于数据记录表中:3.数据的D/A转换:⑴接线:不用接线。

⑵编程:(见程序清单3)程序结构设计---程序框图设计---代码编辑----编译---链接⑶调试:加载---调试⑷运行:①.运行程序②.改变输入的数据,记录转换后OUT1口和OUT2口的输出电平值。

⑸单极性和双极性各对称均匀的测量十六组数据(注:单极性输出口:OUT1,为0~+5V;双极性输出口:OUT2,为-5~+5V)记录实验结果:序号输入数据转换(计算)值实测值误差OUT1口OUT2口OUT1口OUT2口OUT1口OUT2口程序清单:清单1:CODE SEGMENTASSUME CS:CODESTART: MOV DX,00A1HMOV AL,01HOUT DX,AL ;用端口00A1作为输出口CALL DELAYIN AL,DX ;读取数据JMP STARTDELAY PROC ;延时1SMOV CX,1LOOP $RETDELAY ENDPCODE ENDSEND START清单2:CODE SEGMENTASSUME CS:CODESTART: MOV DX,00A6HMOV AL,06HOUT DX,AL ;用00A6口作为输出口CALL DELAYIN AL,DXJMP STARTDELAY PROC ;延时1SMOV CX,1LOOP $RETDELAY ENDPCODE ENDSEND START清单3:CODE SEGMENTASSUME CS:CODEMOV AL,00HSTART: MOV DX,0000HOUT DX,ALCALL DELAYADD AL,11HJMP STARTDELAY PROC ;延时1SMOV CX,1LOOP $RETDELAY ENDPCODE ENDSEND START数据、曲线以及误差分析:单极性ad转换:数据:序号转换数据转换(计算)值实测值误差(%) 修正值修正值误差(%)1 1CH 0.549 0.561 2.190 0.56102 37H 1.078 1.079 0.093 1.0870.7883 4AH 1.451 1.451 0 1.4580.48284 69H 2.059 2.067 0.388 2.062-0.2185 7FH 2.490 2.494 0.161 2.491-0.1006 9BH 3.039 3.030 -0.296 3.0370.2487 B3H 3.510 3.511 -0.028 3.505-0.1578 CBH 3.980 3.983 -0.075 3.973-0.2389 E6H 4.510 4.493 -0.377 4.50.15610 EEH 4.667 4.656 -0.236 4.6560用matlab做其未修正曲线:局部放大:修正曲线:修正曲线局部放大:单极性ad 转换误差分析:由转换值与实测值对比可知:其两者之间相差不大,误差水平几乎都在0.5%以下,在实验允许的范围内。

实验报告四川大学微机保护实验报告3篇_0271文档

实验报告四川大学微机保护实验报告3篇_0271文档

2020实验报告四川大学微机保护实验报告3篇_0271文档EDUCATION WORD实验报告四川大学微机保护实验报告3篇_0271文档前言语料:温馨提醒,教育,就是实现上述社会功能的最重要的一个独立出来的过程。

其目的,就是把之前无数个人有价值的观察、体验、思考中的精华,以浓缩、系统化、易于理解记忆掌握的方式,传递给当下的无数个人,让个人从中获益,丰富自己的人生体验,也支撑整个社会的运作和发展。

本文内容如下:【下载该文档后使用Word打开】实验名称:微机零序方向电流保护特性实验专业:电气信息学院电气工程及其自动化姓名:班级:学号:提交日期:20xx年5月电气信息学院微机零序方向电流保护特性实验【实验目的】1、掌握微机零序方向电流保护一、二、三、四段定值的检验方法。

2、掌握微机保护综合测试仪的使用方法。

3、熟悉微机型零序方向电流保护的构成方法。

【实验内容】1)、实验接线图如下图所示:2)、将接线图中的IA、IB、IC、IN分别接到保护屏端子排对应的15(I-7)、14(I-6)、13(I-5)、20(I-12)号端子;UA、UB、UC、UN分别接到保护屏端子排对应的1(I-15)、2(I-16)、3(I-17)、6(I-18)号端子;K1、K2分别接到保护屏端子排对应的60(I-60)、71(I-71)号端子;n1、n2分别接到保护屏端子排对应的76(220VL)和77(220VN)号端子。

3)、微机零序方向电流保护一、二、三、四段定值的测试,方法如下:第一步:连接好测试线(包括电压线、电流线及开关量信号线的连接,包括电压串联和电流并联),打开测试仪,进入零序保护定检;(参见M20xx使用手册)第二步:设置“定值/测试点”,将保护定值(电流值)输入界面上对应框内,选择测试点(测试点即输出电流为设置定值的倍数);第三步:设置参数。

选择接地类型及试验方式;设置故障前时间、最长故障时间、故障后时间;故障灵敏角、故障电压、合闸角;选择故障后是否失压;如果电流输出值较大,可以选择电流串联;确定开关量输入通道及动作方式;第四步:开始测试。

微机原理综合实验报告

微机原理综合实验报告

微机原理综合实验报告随着计算机技术的不断发展,微机已经成为了我们日常工作和生活中不可或缺的一部分。

为了更好地了解微机的工作原理和实践应用,我们进行了微机原理的综合实验,本文将对此次实验进行详细的讲解和总结。

一、实验目的本次实验的主要目的是通过搭建计算机系统的全部硬件及连接,熟悉和掌握微机的工作原理和实际应用,实践操作模拟简单的计算机应用程序等。

二、实验步骤1.准备工作:搭建计算机实验系统所需的硬件和软件,包括主板、处理器、硬盘、内存、显示器等,同时,将各部件连接起来。

2.开机自检:按下计算机开机键后进行自检,检查各部件是否正常工作。

3.进入BIOS:进入BIOS设置,为系统配置提供支持。

4.安装操作系统:安装Windows操作系统5.应用程序:安装并应用简单的计算机应用程序,如表格制作、文档编辑等。

三、实验结果分析通过本次实验,我们深入了解了微机的硬件构成和软件运行原理,加深了对微机工作原理的认识。

在实践操作中,我们对计算机系统在实际应用中的硬件和软件环境有了深刻的认识和了解。

四、实验中遇到的问题及解决方法在实验中,我们遇到了一些问题,如计算机开机时无法启动、操作系统无法正常安装、硬件连接不正确等。

这些问题的出现主要是由于我们操作时没有细心和认真,没有按照实验指导书的步骤操作。

针对这些问题,我们仔细检查操作过程中的每一个步骤,重新进行操作,直至问题得到解决。

五、结论通过本次实验,我们深刻了解了微机的硬件构成和软件运行原理,了解了微机在实际应用中的硬件和软件环境。

同时,我们还掌握了微机应用的基本技能,如软件安装、简单文件的制作和编辑等。

通过实验的过程,我们深入体验了计算机系统的基本构成及实践应用,并发现并解决了其中存在的问题和疑问,从而加深了对计算机系统的理解和认识,为今后我们的进一步学习和实践打下了坚实的基础。

大学微机原理实验报告(3篇)

大学微机原理实验报告(3篇)

第1篇实验名称:微机原理实验实验日期:2023年10月25日实验地点:计算机实验室实验教师:[教师姓名]实验学生:[学生姓名]班级:[班级名称]一、实验目的1. 理解微机原理的基本概念和组成结构。

2. 掌握微机硬件的基本操作和调试方法。

3. 熟悉汇编语言编程和程序调试技巧。

4. 通过实验加深对微机原理课程的理解,提高动手能力。

二、实验内容本次实验主要分为以下几个部分:1. 微机硬件系统结构认识:了解微机硬件系统的组成,包括CPU、内存、I/O接口等,熟悉各部件的功能和相互关系。

2. 汇编语言编程:学习汇编语言的基本语法和指令系统,编写简单的汇编程序,实现特定功能。

3. 程序调试:使用调试工具(如DEBUG)对汇编程序进行调试,查找并修正错误。

4. 微机原理实验:完成以下实验任务:1. 编写程序实现两个多位十进制数的相加。

2. 编写程序实现字符串比较功能。

3. 编写程序实现乘除法运算。

三、实验步骤1. 微机硬件系统结构认识:- 观察实验室中的微机硬件系统,了解各部件的连接方式和功能。

- 使用示波器检测实验装置的信号是否正常。

2. 汇编语言编程:- 学习汇编语言的基本语法和指令系统。

- 编写程序实现两个多位十进制数的相加,程序如下:```;加数DATA1 DB 3,4,5,6,7;被加数DATA2 DB 2,3,4,5,6;结果SUM DB 5 DUP(0);程序开始MOV CX, 5 ;循环次数MOV AL, 0 ;结果初始化为0MOV SI, OFFSET DATA1 ;加数地址MOV DI, OFFSET DATA2 ;被加数地址ADD_LOOP:ADD AL, [SI] ;加数加到AL寄存器ADC AL, [DI] ;进位加到AL寄存器MOV [DI], AL ;结果存回DI寄存器ADD SI, 1 ;加数地址加1ADD DI, 1 ;被加数地址加1LOOP ADD_LOOP ;循环;程序结束```- 编写程序实现字符串比较功能,程序如下:```;字符串1STRING1 DB 'Hello';字符串2STRING2 DB 'World';比较结果RESULT DB 0;程序开始MOV SI, OFFSET STRING1 ;字符串1地址MOV DI, OFFSET STRING2 ;字符串2地址CMP_LOOP:MOV AL, [SI] ;读取字符串1的当前字符CMP AL, [DI] ;与字符串2的当前字符比较 JNE NOT_EQUAL ;不相等则跳转到NOT_EQUAL INC SI ;字符串1地址加1INC DI ;字符串2地址加1LOOP CMP_LOOP ;循环MOV RESULT, 1 ;相等则将结果设置为1JMP END ;跳转到ENDNOT_EQUAL:MOV RESULT, 0 ;不相等则将结果设置为0END:;程序结束```- 编写程序实现乘除法运算,程序如下:```;被乘数DATA1 DB 10;乘数DATA2 DB 5;结果PRODUCT DB 0;程序开始MOV AL, [DATA1] ;被乘数加载到AL寄存器MUL [DATA2] ;乘数乘到AL寄存器MOV [PRODUCT], AL ;结果存回PRODUCT;程序结束```3. 程序调试:- 使用DEBUG工具对汇编程序进行调试,查找并修正错误。

微机原理实验报告

微机原理实验报告

微机原理实验报告一、实验目的本实验旨在通过实际操控和操作微型计算机,深入了解微机系统的组成和工作原理,加深对计算机硬件结构以及基本操作的理解,培养实际动手能力。

二、实验内容1.熟悉微机系统组成部分:主机、显示器、键盘等。

2.掌握微机系统的基本操作:开机、关机、复位、重启等。

3.了解微机系统的工作原理:运行机制、输入输出等。

4.实践运用微机系统进行一些简单的应用操作。

三、实验步骤1.开机操作:按下主机电源按钮,等待主机启动。

2.系统自检:主机启动后会进行自检操作,检查硬件是否正常。

如果发现问题,主机会发出蜂鸣声。

3.输入输出设备准备:连接好显示器和键盘,并检查是否正常连接。

4.系统登录:按照屏幕上的提示,输入用户名和密码进行系统登录。

5.系统操作:根据实验要求,进行相应的系统操作。

6.关机操作:在操作完成后,选择关机选项进行关机。

四、实验结果与分析通过本次实验,我掌握了微机系统的基本操作,并对其工作原理有了更深入的了解。

通过实际操作,我可以熟练地开机、关机、复位等操作,并可以进行一些简单的应用操作。

同时,我也了解到了微机系统由主机、显示器、键盘等多个组成部分组成,不同组成部分的协作工作实现了系统的正常运行。

五、实验心得通过本次实验,我对微机系统的组成和工作原理有了更深入的了解。

这对我后续学习计算机原理和操作系统提供了基础。

在实验过程中,我也发现了一些问题,比如操作系统选择界面的选择问题,我没有选择正确的操作系统,导致后续实验操作遇到一些困难。

这些问题提醒我在实际操作中需要格外注意,仔细阅读提示并选择正确的操作选项。

总结来说,本次实验对我深入理解微机系统的组成和工作原理提供了良好的机会。

通过实际操控和操作微型计算机,我对计算机硬件结构以及基本操作有了更直观的认识,掌握了一些基本操作技能。

在未来的学习和应用中,我将更加注重细节,提高自己的操作技能,并不断深入学习和了解更多关于微机系统的知识。

微机原理实验报告

微机原理实验报告

微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。

实验一,微机系统组成及工作原理。

1.1 微机系统的组成。

微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。

其中,CPU是微机系统的核心部件,负责控制整个系统的运行。

1.2 微机系统的工作原理。

微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。

CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。

实验二,微机系统的组装和调试。

2.1 微机系统的组装。

在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。

组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。

2.2 微机系统的调试。

组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。

通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。

实验三,微机系统的应用。

3.1 微机系统的应用领域。

微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。

在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。

3.2 微机系统的发展趋势。

随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。

未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。

结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。

这对我今后的学习和工作将有很大的帮助。

微机原理实验报告

微机原理实验报告

微机原理实验报告引言微机原理实验是计算机科学与技术专业的一个重要实验环节,通过实践操作,学生们可以深入理解计算机硬件的基本结构和工作原理。

本篇实验报告将从实验目的、实验装置、实验步骤、实验结果以及实验心得等几个方面进行论述。

一、实验目的本次实验的主要目的是通过搭建微机系统的硬件结构,深入理解计算机的各个部件之间的连接和协作关系。

具体包括以下几个方面的内容:1. 了解微机系统的基本构成和原理。

2. 熟悉微机系统的硬件调试和工作方式。

3. 掌握基本的计算机组成与结构知识。

二、实验装置本次实验所用的装置主要包括以下硬件设备:1. 主板:包括主处理器和内存等一系列组件。

2. 显示器:用于显示计算机的输出结果。

3. 键盘和鼠标:用户与计算机进行交互的输入设备。

三、实验步骤1. 将主板与电源连接,确保供电正常。

2. 将显示器连接至主板的显卡接口,确保显示器正常亮起。

3. 将键盘和鼠标分别插入主板的相应接口,以实现输入功能。

4. 按下电源键启动计算机,观察主板灯光是否亮起,表示主板运行正常。

5. 在显示器上观察到系统自检信息,并等待操作系统加载完成。

6. 通过鼠标点击或键盘输入进行一系列操作,例如打开软件、编辑文档等。

7. 在完成操作后,正常关闭计算机,断开与主板的连接。

四、实验结果通过以上实验步骤,我们成功搭建了一个微机系统,并成功运行了操作系统。

在实验过程中,主板灯光亮起,显示器正常工作,并且可以通过键盘和鼠标进行各类操作。

我们能够在显示器上看到系统自检的信息,并且顺利加载了操作系统。

通过鼠标和键盘,我们还成功打开了一些应用程序进行操作。

实验结果令人满意。

五、实验心得通过本次实验,我们进一步深化了对微机原理的理解。

通过亲自搭建微机系统,我们更加直观地感受到了计算机硬件的工作原理和各个部件之间的联系。

实验过程中也让我们意识到了计算机的脆弱性和重要性,需要我们在使用时进行细心操作并及时维护。

通过这次实验,我们不仅增加了实践经验,还加深了对计算机原理的理论理解。

微机原理实验报告

微机原理实验报告

微机原理实验报告
一、实验目的
本次实验的主要目的是了解微机原理、学习微机的基础知识、技能和操作方法,还有熟悉微机实验室的使用方法。

二、实验过程
在实验室中,我们首先进行了掌握微处理器的基本指令集和编程技巧的实验。

通过对微处理器的学习,我们了解到了微处理器的组成结构和工作原理,同时也了解了微处理器的基础指令集,包括数据的传送、算术、逻辑、分支、循环指令等等。

接着我们进行了CPU总线实验。

通过对CPU总线的学习,我们了解了CPU读写内部和外部存储器的方法和原理。

同时,我们学习了编写程序来控制CPU读写存储器等。

最后,我们进行了8255并行接口控制实验。

通过学习并实践8255并行接口控制实验,我们了解了接口及其编程。

三、实验结果
在实验中,我们成功地掌握了微处理器的基本指令集和编程技巧,了解了微处理器的组成结构和工作原理,同时掌握了CPU总
线实验和8255并行接口控制实验。

在实验中不仅增长了专业知识,而且也培养了我们的实验能力,并进一步增强了我们的实践能力。

四、实验心得
通过这次实验,我们意识到,要想成为一名优秀的计算机专业
人才,必须首先打牢微机原理的基础,通过大量的实践和实验,
来应用理论知识,深入了解计算机底层的数据处理方式以及处理
器和存储器的工作原理。

只有这样才能够在日后工作中运用自如,并且在以后的学习和研究中更具备竞争力。

在以后的学习中,我将持续学习和实践,不断探索和发现,提
升自身的能力,为未来的发展做好充分的准备。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四川大学微机原理实验报告微机原理实验报告学院:专业班级:姓名学号实验一汇编语言编程基础1.3汇编语言程序上机操作和调试训练一.功能说明运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。

运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。

运用LINK.EXE文件进行连接,形成*.EXE文件。

仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。

运用DEBUG。

EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。

再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。

二.程序流程图设置被除数、商的地址指针设置单位除法次数计数器取被除数一位作十进制调整作字节除法、存商N 被除数各位已除完?Y显示运算结果结束三.程序代码修改后的程序代码如下:DATA SEGMENTA DB 9,6,8,7,5B DB 5C DB 5 DUP (0)N EQU 5DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXCLDLEA SI,ALEA DI,CMOV CX,NMOV AH,0LP1: LODSBAADDIV BSTOSBLOOP LP1MOV CX,NLEA DI,CLP2: MOV DL,[DI]ADD DL,30HMOV AH,2INT 21HINC DILOOP LP2MOV AH,4CHINT 21HCODE ENDSEND START四.实验感想和收获通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。

在这次试验中我也遇到了一些困难。

在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。

我这才想起来我的操作系统是64位的,和该软件版本不兼容。

不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX这个程序可以解决我的电脑运行不了该程序的问题。

在解决了第一个难题后,我开始着手改正试验 1.3中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。

根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。

在用DEBUG调试时发现得出的结果也很正确。

尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和C语言等高级语言所不同的地方。

越是底层,基础的东西就越不人性化,用C语言一行代码就能实验的功能在汇编语言中可能要花上数十行。

看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

实验二设计汇编语言程序一.功能说明练习1. 实验题目:编程计算下列表达式:A=90,B=-70,C=5,Y均为有符号数,计算Y=2×(A+B)+(A×C)÷5要编写一些稍微复杂的程序,我们会遇到一段程序被反复执行,这样,我们会用到LOOP指令。

使用该指令时,需在CX中装入循环次数。

练习2.码转换程序设计编制程序,把十进制数15786转化成二进制数。

提示:15786=1×10×10×10×10+5×10³+7×10²+8×10+6,循环CX=5练习3.编制程序,从键盘输入最多5个数,求他们的和,存入SUM。

练习4.用“冒泡“法对一组数300,250,280,240,260,按从小到大的顺序排列。

提示:用冒泡的方法对一组数据元素排序,它的基本方法是:将相邻的两个元素通过比较进行排序,通过多次,多遍的邻元素排序,实现整个一组数的排序。

对于5(N)个元素,整个排序通过4遍(=N-1)邻元素排序完成。

每一遍的排序由若干次邻元素的排序组成。

4遍排序中,邻元素的排序依次为4,3,2,1遍。

完成第一遍排序后,最大数沉底,已经到达它应占据的位置,不需要参加下一遍的排序。

外循环的次数为CX=4次(N-1),内循环的次数为4,3,2,1(DEC CX)排序遍数本遍排序前第一次排序后第二次排序后第三次排序后第四次排序后1 300,250,280,240,260 250,300,280,240,260250,280,300,240,260250,280,240,300,260250,280,240,260,3002 250,280,240,260,300 250,280,240,260,300250,240,280,260,300250,240,260,280,3003 250,240,260,280,300 250,240,260,280,300240,250,260,280,3004 240,250,260,280,300 240,250,260,280,300实验要求:1.编制程序,从键盘输入300,250,280,240,260这五个数,并思考如何输入任意五个数,五个数可以有一位数,二位数,三位数,四位数,五位数,混合输入比较大小;2.对这组数用冒泡法进行排序,并输出原始数据及排序后数据,两两数据之间用空格分隔;3.利用DEBUG调试工具,用D0命令,查看排序前后,内存数据的变化,以及会用调试命令查看程序运算中寄存器中的值;4.去掉最大和最小的两个值,求出其余值的平均值,并输出最大值,最小值和平均值;5.用压栈PUSH和出栈POP指令“先进后出”的特点,设计算法将平均值按位逐个输出(即输出263);6.用移位指令将平均值以二进制串的形式输出。

7.设计程序要有模块化的思想,用子程序实现不同的功能;所有数据输出前要用字符串的输出指令,进行输出提示(如:zui da zhi shi : 300等),所有数据结果能清晰地显示在电脑屏幕上。

二.程序流程图开始输出 'QING SHU RU 5 GE SHU JU'提示输入数据输入5个待排序的数据输出'PAI XU HOU DE SHU JU SHUN XU SHI :'CX=4(外循环)CX 入栈指针指向第一个数比较相邻两数大小,前一个数比后一个小?CX 减1,指针指向下一个数Y将这两个数交换位置NCX=0?N外循环CX 出桟并减1YCX=0?N输出排序后的五个数据Y三.程序代码练习一:DATA SEGMENTA DB 90B DB -70C DB 5Y DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BL,AMOV CL,BADD BL,CL ;A+BMOV AL,02HIMUL BL ;2*(A+B)MOV BX,AXMOV AL,AMOV CL,CIMUL CL ;A*CIDIV CL ;A*C/5 ADD AX,BXMOV Y,AXMOV AH,4CHINT 21HCODE ENDSEND START练习二:DATA SEGMENTA DW 15786DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV BX,AMOV CX,16LEFT: TEST BX,8000HJNZ L1 ;当首位为1,执行L1 MOV DL,'0' ;输出‘0’MOV AH,02HINT 21HSHL: SHL BX,1LOOP LEFTMOV AX,4CHINT 21HL1: MOV DL,'1' ;输出‘1’ MOV AH,02HINT 21HJMP SHLCODE ENDSEND START运行结果:练习三:DATA SEGMENTSUM DW ?HEHE DB ?,?,?,?,? DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXLEA SI,HEHEMOV BL,0MOV CX,5LOOP1: MOV AH,01HINT 21HSUB AL,30HMOV [SI],ALINC SILOOP LOOP1MOV CX,5MOV AX,0SUB SI,5LOOP2: ADD AL,[SI]AAAINC SILOOP LOOP2MOV BX,AXMOV SUM,AXMOV DL,BHADD DL,30HMOV AH,2INT 21HMOV DL,BLADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODE ENDSEND START运行结果:冒泡排序法程序:DATAS SEGMENTSHURU DB 'QING SHU RU 5 GE SHU JU',13,10,'$'SHU1 DB 4,?,3 DUP(?)SHU2 DB 4,?,3 DUP(?)SHU3 DB 4,?,3 DUP(?)SHU4 DB 4,?,3 DUP(?)SHU5 DB 4,?,3 DUP(?)AVER DB 3 DUP(?)SHUCHU DB 'PAI XU HOU DE SHU JU SHUN XU SHI',':','$'MAX DB 'ZUI DA ZHI SHI',':','$'MIN DB 'ZUI XIAO ZHI SHI',':','$'AVERAGE DB 'PING JUN ZHI SHI',':','$'CHUSHU DB 100,10HE DW ?STR1 DB 16 DUP(30H)STR2 DB 'PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU',':','$' DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART: MOV AX,DATASMOV DS,AXMOV ES,AXLEA DX,SHURU;显示QING SHU RU 5 GE SHU JU:INT 21HMOV CX,5;输入五个数字MOV SI,0INPUT: LEA DX,[SHU1+SI];输入要排序的原始数据MOV AH,10INT 21HMOV DL,10;输入后换行MOV AH,2INT 21HADD SI,5;指针加5,指向下一个变量LOOP INPUTCLDMOV CX,4;设定排序外循环次数A: MOV BP,0PUSH CX;外循环次数入栈PX: PUSH CXMOV CX,3LEA SI,[SHU1+BP+2];逐位比较两个数大小LEA DI,[SHU1+BP+7]REPZ CMPSBJB B;如果小于直接比较下一个数,否则两个数对换位置MOV CX,3Jh: MOV AL,SHU1[BP+2]XCHG AL,SHU1[BP+7];将两个字节对换位置,循环3次即完成这两个数的交换XCHG AL,SHU1[BP+2]INC BPLOOP JhSUB BP,3B: ADD BP,5;指向后面两个数字POP CXLOOP PXPOP CX;外循环次数出栈LOOP ALEA DX,SHUCHU;输出字符串'PAI XU HOU DE SHU JU SHUN XU SHI:' MOV AH,9INT 21HMOV CX,5MOV SI,2OUTPUT:PUSH CX;计数器入栈实现循环嵌套MOV CX,3L: MOV AL,[SHU1+SI];输出排序后的5个数字MOV DL,ALINT 21HINC SILOOP LMOV DL,2CHMOV AH,2INT 21HADD SI,2POP CX;计数器出栈LOOP OUTPUTMOV DL,10MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,MAX;输出字符串'ZUI DA ZHI SHI:' MOV AH,9INT 21HMOV CX,3MOV SI,2D: MOV DL,[SHU5+SI];输出最大值MOV AH,2INT 21HINC SILOOP DMOV DL,10;换行MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,MIN;输出字符串'ZUI XIAO ZHI SHI:' MOV AH,9INT 21HMOV CX,3MOV SI,2E: MOV DL,[SHU1+SI];输出最小值MOV AH,2INT 21HINC SILOOP EMOV DL,10MOV AH,2MOV DL,0DHMOV AH,2INT 21HLEA DX,AVERAGE;输出字符串'PING JUN ZHI SHI:'MOV AH,9INT 21HMOV CX,3MOV BX,10;除数10MOV SI,2AD: MOV DX,0MOV AH,0PUSH CXMOV CX,3ZH: MOV AL,[SHU2+SI];将十进制数转换为二进制数,为后面求平均值做准备SUB AL,30HPUSH AXMOV AX,DXMUL BXMOV DX,AXPOP AXADD DX,AXINC SILOOP ZH;执行3次完成3个十进制数的转换ADD SI,2POP CXADD HE,DX;将DX的数放在HE中LOOP AD;循环后得到三个十进制数转换为二进制数之后的相加和MOV DX,HE;MOV AX,DXXOR DX,DXMOV BX,3DIV BX;除3取平均值,结果将商放在AX中,余数放在DX中MOV BX,AX;给BX赋值平均数,然后将BX中表示的十进制数转换为对应的字符串DIV CHUSHU;除100取最高位ADD AL,30H;转换为ASCII码MOV AVER,ALMOV AL,AHXOR AH,AHDIV [CHUSHU+1];除10取十位ADD AL,30HADD AH,30H;余数就是个位MOV [AVER+1],ALMOV [AVER+2],AHMOV CX,3MOV SI,0F: MOV DL,[AVER+SI];输出平均值MOV AH,2INT 21HINC SILOOP FMOV DL,10MOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,STR2 ;输出字符串'PING JUN ZHI DE ER JIN ZHI CHUAN SHU CHU:’ MOV AH,9INT 21HMOV CX,16MOV SI,0G: RCL BX,1;将平均数转换为二进制串JNC HADD [STR1+SI],1;如果不为0就将其加1变成1的ASCII码值H: MOV DL,[STR1+SI];将二进制串逐个输出MOV AH,2INT 21HINC SILOOP GMOV AH,4CHINT 21HCODES ENDSEND START运行结果:四.实验感想和收获本次实验相较于第一次难度增大了很多,本人花了大约12个小时才做完。

相关文档
最新文档