微机原理第1、2次实验

合集下载

西安交通大学微机原理第一次实验报告

西安交通大学微机原理第一次实验报告

微型计算机原理与接口技术第一次实验报告实验者姓名:实验者学号:所在班级:报告完成日期:20年月日实验二分支程序的设计一、实验目的1.学习提示信息的显示及键盘输入字符的方法。

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

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

当此数大于0时,屏幕显示此数为正数;当此数小于0时,屏幕显示此数为负数;当此数等于0时,屏幕显示此数为零。

三、实验调试过程利用-u命令进行反汇编,结果如下。

三个CMP语句运行完的地址如图所示,第一个CMP运行完的是29H输出结果的地址如下图所示:首先对输入为负数时进行验证:输入FFH,设置一个断点在29H,利用-t命令观察跳转,结果如图:可以看到,程序最终正确的转入输出负的分支。

再输入正数11H,利用-t观察整个比较过程如下:可以看到,程序最终正确的转入输出正的分支。

最后输入00H,利用-t观察整个比较过程如下:可以看到,程序最终正确的转入输出0的分支。

四、实验框图及程序代码实验框图:程序代码:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDA TA 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 ZERO',0DH,0AH,'$'DA TABUF DB 3 ;定义最大可输入字符长度ACTLEN DB ? ;实际输入字符长度STRING DB 3 DUP(?) ;输入字符缓冲区DA TA ENDSSSEG SEGMENT PARA STACK 'STACK'DB 50 DUP(0)SSEG ENDSCODE SEGMENTASSUME CS:CODE,SS:SSEG,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV AX,SSEGMOV SS,AXMOV DX,OFFSET MESS1MOV AH,09HINT 21HMOV AH,0AHMOV DX,OFFSET DATABUFINT 21HCRLFMOV AL,STRINGCMP AL,38HJAE ISNEGCMP AL,30HJNZ ISPOSMOV AL,[STRING+1]CMP AL,30HJNZ ISPOSJMP ISZEROISPOS:MOV DX,OFFSET MESS2MOV AH,09HINT 21HJMP DONEISNEG:MOV DX,OFFSET MESS3MOV AH,09HINT 21HJMP DONEISZERO:MOV DX,OFFSET MESS4MOV AH,09HINT 21HJMP DONEDONE:MOV AX,4C00HINT 21HCODE ENDSEND START五、实验结果及分析编写的汇编程序EX2.ASM经过汇编MASM与链接LINK生成可执行文件EX2.EXE,测试如下:可见,程序能够正确判断输入数据的正、负、零情况。

微机原理实验时间安排

微机原理实验时间安排

第一次实验:11月19日(周六上午):237第一组239第二组11月19日(周六中午):237第七组239第十一组11月19日(周六下午):237第六组239第十五组11月19日(周六晚上):237第十四组239第五组11月20日(周日上午):237 第四组239第三组11月20日(周日中午):237 第十组239第九组11月20日(周日下午):237第十二组239第十三组11月20日(周日晚上):239第八组第二次实验:11月26日(周六上午):237第一组239第二组11月26日(周六中午):237第七组239第十一组11月26日(周六下午):237第六组239第十五组11月26日(周六晚上):237第十四组239第五组11月27日(周日上午):237 第四组239第三组11月27日(周日中午):237 第十组239第九组11月27日(周日下午):237第十二组239第十三组11月27日(周日晚上):239第八组第三次实验:12月3日(周六上午):237第一组239第二组12月3日(周六中午):237第七组239第十一组12月3日(周六下午):237第六组239第十五组12月3日(周六晚上):237第十四组239第五组12月4日(周日上午):237 第四组239第三组12月4日(周日中午):237 第十组239第九组12月4日(周日下午):237第十二组239第十三组12月4日(周日晚上):239第八组第四次实验:12月10日(周六上午):237第一组239第二组12月10日(周六中午):237第七组239第十一组12月10日(周六下午):237第六组239第十五组12月10日(周六晚上):237第十四组239第五组12月11日(周日上午):237 第四组239第三组12月11日(周日中午):237 第十组239第九组12月11日(周日下午):237第十二组239第十三组12月11日(周日晚上):239第八组第一组:阎波老师(英才班)1-40号第二组:阎波老师(英才班)41-80号第十五组:阎波老师(英才班)81-121号,皮秀敏,罗小嘉,谢林峰第三组:阎波老师(通信班)1-51号第四组:阎波老师(通信班)52-102号第五组:阎波老师(通信班)103-153号第六组:郭志勇老师1-50号第七组:郭志勇老师51-100号第八组:郭志勇老师101-141号第九组:周亮老师1-50号第十组:周亮老师51-100号第十一组:周亮老师101-139号第十二组:黄乐天老师1-50号第十三组:黄乐天老师51-100号第十四组:黄乐天老师101-139号阎波老师(通信班)154-164号,李泽成,乒克虎,杨杨以上序号为助教给的序号。

微机原理实验报告

微机原理实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

微机原理8259A实验报告

微机原理8259A实验报告

实验二8259A中断控制器应用实验分析报告一、填写补充实验1-2中以下两段代码,并简述其意义:第1段:IN AL,21H_ AND AL, 0F7H _____________OUT 21H,ALIN AL,0A1H__AND AL, 0FBH______________OUT 0A1H,AL第2段:MOV AL,20HOUT 0A0H,ALOUT 20H,AL二、简述实验1-2的实验现象,分析解释其原因;结合本实验,简述中断嵌套和中断优先级的意义以及正确形成中断嵌套的基本要求。

答:实验1现象:按下一次单脉冲,显示一次字符,十次中断后停机,不再显示字符串实验2现象:分别按下两个单脉冲显示一串3和一串10,在3未显示完全时按下显示10的脉冲键,可发生中断,相反则不能发生中断,需等待一串10显示完后再显示一行3。

原因:IRQ10的中断级别高于IRQ3,所以可以在3还没有执行完时中断IRQ3,中断原程序执行IRQ10 。

中断嵌套的意义:为了让CPU及时响应更高级别的中断请求。

中断优先级的意义: CPU只能响应一个中断请求,在中断源较多的情况下,当有多个中断源同时发起中断请求时,CPU需要对多个中断源的优先级进行判断,判断出优先级最高的中断请求进行响应。

中断嵌套要求是:被中断程序的优先级低于请求程序中断的优先级。

三、抄写实验1-2中要求填写的“显示‘10’和‘空格’”的代码段NEXT10_1:MOV AX,SEG MESS10MOV DS,AXMOV DX,OFFSET MESS10MOV AH,09INT 21H ;使用INT21 – 09H实现字符串的输出‘10’CALL DELAY1 ;调用延时子程序LOOP NEXT10_1MOV DX,0DH ;调用DOS的中断功能,回车MOV AH,02HINT 21HMOV DX,0AH ;调用DOS的中断功能,换行MOV AH,02HINT 21H四、用文字简述或流程图方式,说明实验1-3中“以查询方式检测处理多中断请求”的过程。

新版西电微机原理第二次上机实验报告-新版-精选.pdf

新版西电微机原理第二次上机实验报告-新版-精选.pdf

西电微机原理第二次上机实验报告学号:姓名:一、实验目的1.熟练掌握汇编语言程序设计的方法及上机步骤。

2.掌握算术运算中,十进制数调整指令的应用。

3.掌握子程序的设计方法。

4.掌握DOS功能的调用方法。

二、实验仪器586微机 1台三、实验内容编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。

编程要求与提示:[1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。

[2] 和以压缩十进制数的形式存入SUM以下单元。

[3] 将和送到屏幕显示部分功能的实现采用子程序的形式。

[4] 实验步骤如下:a. 用全屏幕编辑软件建立源程序。

b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。

c. 用link.exe连接程序对目标程序进行连接形成可执行文件。

d. 用DEBUG对连接通过的可执行程序进行调试。

四、实验内容对应的源程序及流程源程序如下:STACK SEGMENT STACKDB 10H DUP(00)STACK ENDSDATA SEGMENTADD1 DB 12H,67H,85H,32HADD2 DB 21H,73H,65H,43HSUM DB 4H DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX, DATAMOV DS, AXMOV AX, DATAMOV ES, AXMOV AX,STACKMOV SS,AXLEA SI, ADD1[3]LEA BX, ADD2[3]LEA DI,SUM[3]MOV CX,4CLCL1:MOV AL,[SI]ADC AL,[BX]DAAMOV [DI],ALDEC SIDEC BXDEC DILOOP L1CALL DISPAL; ------------EXITPROC:MOV AH,4CH ;结束程序MOV AH,1INT 21H; ------------DISPAL PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH DILEA DI,SUMMOV CX,4DISPAL2:MOV AL,[DI]SHR AL,1SHR AL,1SHR AL,1SHR AL,1MOV AH,2MOV DL,ALADD DL,30HINT 21HMOV AL,[DI]AND AL,0FHMOV AH,2MOV DL,ALADD DL,30HINT 21HINC DILOOP DISPAL2POP DIPOP DXPOP CXPOP BXPOP AXRETDISPAL ENDPCODE ENDSEND START运行结果如下:五、问题讨论1.在以十进制数形式参加运算的程序设计中,应注意那些问题。

微机原理第1、2次实验

微机原理第1、2次实验

微机原理第1、2次实验
3.1 IO口读写实验(245、373)
1、实验内容
利用板上集成电路上的资源,扩展一片74HC245,用来读入开关状态;扩展一片74HC373,用来作来输出口,控制8 个LED 灯。

2、实验目的
(1)了解CPU 常用的端口连接总线的方法。

(2)掌握74HC245、74HC373 进行数据读入与输出。

3、实验电路
4、实验流程图
5、实验说明
一般情况下,CPU 的总线会挂有很多器件,如何使这些器件不造成冲突,这就要使用一些总线隔离器件,例如74HC245、74HC373。

74HC245 是三态总线收发器,本实验用它做输入,片选地址为0D0000H-0DFFFFH。

就是用于读入开关值。

74HC373 是数据锁存芯片,通过它作数据的锁住输出。

6、发现的问题
(1)实验指导书中译码器上的连线与代码中的地址不对应,在CPU的输出状态时译码器的Y0为低电平,其他位为高电平,应将原先连接在Y9的线改接到Y0上。

如图:
如果不想改电路,把代码中的OUT373 EQU 8000H改为OUT373 EQU 0E000H,也能使CPU在输出状态时Y9呈现低电平。

如图:
(2)元件与元件直接必须用导线相连,两个元件挨在一起是不算作导通的
否则会出现比如下面这种即使两端有电势差LED灯也不亮的情况
如图,只需将右边改为下图这样即可
添加三极管的目的是为了在8个开关都闭合(向74HC245输入低电平)的情况下,使七段数码管的第一根管脚断路,七段数码管不发光,避免了在8个开关都
闭合时显示数字8。

微机实验一二报告

微机实验一二报告

微机实验第一、二次实验实验一:指令与汇编语言基础一、实验目的1了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点;2掌握汇编语言程序指令编辑、宏汇编、连接和运行的基本概念;3熟练掌握动态调试程序TD的常用命令和窗口功能,学会用TD调试程序,修改环境;4学会利用DEBUG或TD检查认识指令功能的正确方法。

二、实验内容必做实验一要求计算两个多字节十六进制数之差:3B74AC60F8-20D59E36C1=?式中被减数和减数为5个字节,存放在DATA1和DATA2的内存区,低位在前,高位在后。

试编写减法的程序段,要求相减的结果存放在首址为DATA3的内存区。

必做实验二以BUFFER为首地址的内存区存放了10个十六位带符号数,编写程序比较它们的大小,找出其中最小的带符号数,存入MIN和MIN+1单元。

选做实验两个字符串的长度均为10,首地址分别为STRING1和STRING2,比较两个字符串是否完全相同,如果相同,将BL寄存器置为00H;如果不完全相同,将BL 寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器中。

三、实验原理必做实验一由于本题中被减数和减数都比较长,一个寄存器放不下,我们将其分开存放。

它们都是5个字节,根据实验条件,应分成3处存放CL-BX-AX(被减数),减数直接从memory里调用。

由于数据分段存放,在做减法的时候,我们应采用SUB指令和SBB(带借位位的减法)指令相结合的方法。

必做实验二首先,将BUFFER中的第一个数据存到MIN中。

将BUFFER中的数据和MIN 中的数据相比较,如果BUFFER中的数据小,则用BUFFER中的数据存放到MIN 中,然后进行下一次循环;否则,直接进行下一次循环。

循环结束时,MIN中的数据就是BUFFER中最小的数据。

选做实验输入待比较字符串分别定义在ds和es,定义si和di初始值并设置为cld递增模式,利用repe和cmpsb组合指令进行比较是否相等,如果相等,重复比较指令,如果不等,判断cx是否为0,为0则bl赋为0,否则bl赋为ff,si赋为cx,程序结束。

微机原理第二次实验报告

微机原理第二次实验报告

微机原理第二次实验报告实验二:加法及判断程序调试实验实验报告健行理工1402班 陈丽红 201424450202一、实验目的1. 掌握编写汇编语言源程序的基本方法和基本框架。

2. 学会编写顺序结构、分支结构和循环结构的汇编程序,掌握宏定义与宏调用的方法。

3.掌握程序中数据的产生与输入输出的方法。

二、实验内容1. 用汇编语言编写一个加法程序: 1325十9839,用ASCII 码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加结果显示输出。

2. 设有一组数据: 5,-4,0,3,100,-51,编程判断:每个数是>0、=0、还是<0 ?并输出其判断结果。

即:⎪⎩⎪⎨⎧<-=>=010001x x x y 当当当三、程序说明3.1实验内容一:(1) 两个数据先以相反的顺序以ASCII 码的形式存放在数据段的DATA1和DATA2中,相加时从DATA1和DATA2的起始字节开始相加,也就是从数的个位数开始相加。

相加后的结果存放在DATA2开始的存储单元中,同时用DL 保存进位位。

(2)对于本题来说,题目为两个四位数相加,所以定义循环数为4。

(3) 程序中的加法运算是ASCII 码运算,后面应加一条ASCII 码加法调整指令AAA ,经AAA 调整的加法指令,将ASCII 码的数据高4位清“0”,因此要将结果每位数高4位拼成3,变成ASCII 码存到DATA2中。

(4)一位运算结束后将用于保存进位位的DL 复原,进入循环,进行下一位求和计算。

(5)由于计算是从个位数相加开始,所以存入DATA2中的数据应该以相反的顺序输出,故再进行一轮循环输出,得到最终的计算结果。

3.2实验内容二:(1)首先将原始数据(5,-4,0,3,100,-51)装入起始地址为VAR 的字节存储单元中。

(2)将判断结果以字符串的形式分别存放在数据区中,以便在显示输出时调用。

(3)判断部分采用CMP 指令。

微机原理实验报告

微机原理实验报告

微机原理实验报告班级:自动化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 显示,验证程序功能。

微机原理第二次实验报告-董东启

微机原理第二次实验报告-董东启

实验二定时器实验一、实验目的与要求利用定时器控制产生占空比可变的PWM波,通过实验验证进一步加强对定时器功能的认识,掌握定时器的使用方法。

1、用P1.0口输出PWM波,利用按键控制占空比的增加和降低,用示波器查看P1.0口的输出波形。

2、引导学生进行利用现有程序演示定时器动态显示数码管实验,了解数码管动态扫描方式。

二、实验注意事项1、启动KEIL软件,选择菜单“工程\新建工程”以建立工程(扩展名为.uv2,如T2a.uv2)。

2、选择菜单“文件\新文件”以建立一个新的文本编辑窗口,在窗口中输入参考源程序1并保存(扩展名为.asm),如test2a.asm,然后将其加入到源程序组1中。

3、在工程菜单的选项“目标1属性”中设置相应的选项,包括“输出\产生hex文件”选项以便汇编生成HEX代码供编程器使用,在“调试\使用KeilMonitor-51 Driver”的设置中选择相应的串口号。

4、使用“工程”中的“编译全部文件”完成相应的文件编译,如果程序格式正确将生成相应HEX代码文件,如T2a.hex。

如果提示有编译错误请自行修改源程序然后再重新编译。

5、用单根连线将P1.0(JP44)连接到8路指示灯部分(JP32)的LED0,将P1.6、P1.7(JP44)分别连接到JP37的K01、K02。

6、完成仿真器与计算机之间的连线并通电。

7、在KEIL软件中启动“调试\开启仿真模式”,然后用“运行”命令实现全速运行的仿真。

8、观察实验现象并分别依次按下K01、K02,观察并记录实验现象然后在KEIL软件中启动“中断运行-调试(debug)\关闭仿真模式”退出仿真,选择“工程\关闭工程”可关闭当前工程。

9、参考步骤1-4完成参考源程序2的建立与输入,如新项目T2b.uv2和新的源程序test2b.asm,完成编译与仿真设置。

10、用8PIN连线将P0口连接到数码管数据输入端,P2口连接到数码管控制端。

11、输入程序并仿真运行,注意数码管的显示内容。

西安交大微机原理第一次实验报告(共10页)

西安交大微机原理第一次实验报告(共10页)

微机(wēi jī)原理第一次实验报告一.实验(shíyàn)目的(1) 学习8086/8088指令系统中一些基本(jīběn)指令的用法和程序设计的基本方法。

(2) 熟悉PC机上建立、汇编、连接(liánjiē)、调试和运行8086、8088汇编语言程序的全过程。

(3) 学习提示信息的显示及键盘输入字符的方法。

(4) 掌握分支程序的设计方法。

二.实验内容(1) 设a,b,c,d四个数分别以单字节压缩BCD码形式存放在内存NUM开始的四个单元,计算(a+b)-(c+d)并将结果放在Y1单元中,将结果在屏幕上显示出来。

在debug中不断改变a,b,c,d内容并查看结果。

1. a=09, b=06, c=04, d=072. a=38, b=41, c=29, d=343. a=70, b=23, c=42, d=414. a=63, b=73, c=62, d=50(2) 在提示信息下,从键盘输入原码表示的二位十六进制有符号数,当此数大于0时,屏幕上显示此数为正数;当此数小于0时,屏幕上显示此数为负数;当此数为0时,屏幕上显示此数为零。

三.实验调试过程3.1 题目一调试过程C:\<DEBUG ONE.EXE-U 反汇编-R 查看(chákàn)寄存器变量值观察(guānchá)到0005时已完成(wán chéng)数据初始化,利用(lìyòng)g 5追踪到此处利用-d0指令查看内存单元,在偏移地址为0,1,2,3的地方有9,6,4,7,正是我们在代码中赋的初值。

-g d,观察(guānchá)到此时AL已赋值a=15H-g 16,计算(jì suàn)出a+b的值并赋给AL,值为0b,正确(zhèngquè)-g 19,DAA调整后AL变为11,计算(jì suàn)正确-g 1b,cl=04H成功赋值给AL,正确-g 1f,计算出(a+b)-(c+d)结果为04H,正确题目(tímù)二程序调试过程-U0, 反汇编-g 5,程序执行到此处时,完成(wán chéng)DS寄存器赋值DS=0B5EH-g a,程序执行到此处时,完成(wán chéng)SS寄存器赋值SS=0B69H-g 24,程序执行到此处,实现提示信息输出(shūchū)INPUT DATA:,手动输入C9-U-g 2f,程序执行到此处,成功(chénggōng)跳转,显示信息“THIS DATA IS –“四.程序(chéngxù)及框图4.1 题目(tímù)一程序DSEG SEGMENT ;定义数据段NUM DB 13H,27H,11H,12H ;定义(dìngyì)a,b,c,dY1 DB ?DSEG ENDS ;数据段定义结束SSEG SEGMENT PARA STACK ;定义堆栈段DB 20 DUP(?)SSEG ENDS ;堆栈段定义结束CSEG SEGMENT ;定义代码段ASSUME CS:CSEG,DS:DSEG,SS:SSEG ;各段定义(dìngyì) START: MOV AX,DSEGMOV DS,AX ;数据段段(duàn duàn)地址送DSMOV AX,SSEGMOV SS,AX ; 堆栈段段(duàn duàn)地址送SSMOV AL,[NUM]ADD AL,[NUM+1] ;计算(jì suàn)a+bDAA ;压缩BCD码加法调整DAAMOV CL,AL ; 保存a+bMOV AL,[NUM+2]ADD AL,[NUM+3] ;计算c+dDAA ;压缩BCD码加法调整DAASUB CL,AL ;计算(a+b)-(c-d)MOV AL,CLDAS ;DAS调整MOV [NUM+4],AL ;保存结果AND AL,0F0H ;取AL中高四位MOV CL,4SHR AL,CL ;BCD码高位移至低位ADD AL,30H ;AL加30H得ASCII码MOV DL,ALMOV AH,02HINT 21H ;显示DLMOV AL,[NUM+4] ; 恢复ALAND AL,0FH ;取AL低四位ADD AL,30H ;AL加30H得ASCII码MOV DL,ALMOV AH,02HINT 21H ;显示DLMOV AX,4C00HINT 21H ;返回DOSCSEG ENDSEND START ;程序结束4.2 题目二程序CRLF MACRO ;宏定义MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21H ;显示换行ENDM ;宏结束DATA SEGMENT ;定义数据段MESS1 DB 'INPUT DATA:',0DH,0AH,'$'MESS2 DB 'THIS DATA IS+',0DDH,0AH,'$'MESS3 DB 'THIS DATA IS-',0DH,0AH,'$'MESS4 DB 'THIS DATA IS ZERO',0DH,0AH,'$'DATABUF DB 3 ;定义(dìngyì)最大可输入字符长度 ACTLEN DB ? ;实际(shíjì)输入字符长度STRING DB 3 DUP(?) ;输入(shūrù)字符缓冲区DATA ENDS ;数据(shùjù)段结束SSEG SEGMENT PARA STACK 'STACK' ;定义堆栈段 DB 50 DUP(0)SSEG ENDS ;堆栈段结束CODE SEGMENT ;定义代码段ASSUME CS:CODE,SS:SSEG,DS:DATA ;各段定位START: MOV AX,DATAMOV DS,AX ;DS段寄存器赋值MOV AX,SSEGMOV SS,AX ;SS段寄存器赋值MOV DX,OFFSET MESS1MOV AH,09HINT 21H ;显示提示信息MOV AH,0AHMOV DX,OFFSET DATABUFINT 21H ;接收键入的字符串CRLF ;回车换行MOV AL,STRING ;接收字符高位CMP AL,38H ;比较高位和38H的大小JGE FUSHU ; 若高位>=38H?,跳至FUSHU处执行 CMP AL,30H ;比较高位和30H的大小JE ZERO ;若高位=30H?,跳至ZERO处执行ZHENGSHU: MOV DX,OFFSET MESS2 ;显示输出为正数 MOV AH,09HINT 21HJMP OVERFUSHU: MOV DX,OFFSET MESS3 ;显示输出为负数MOV AH,09HINT 21HJMP OVERZERO: MOV AL,[STRING+1] ;显示输出为0CMP AL,30HJNE ZHENGSHUMOV DX,OFFSET MESS4MOV AH,09HINT 21HJMP OVEROVER: HLTCODE ENDS ;代码段结束(jiéshù)END START ;程序(chéngxù)结束五.实验(shíyàn)结果5.1 题目(tímù)一实验结果1. a=09, b=06, c=04, d=07时,计算结果为042. a=38, b=41, c=29, d=34时,计算结果为163. a=70, b=23, c=42, d=41时,计算结果为104. a=63, b=73, c=62, d=50时,计算结果为245.2 题目二实验结果键盘输入c9,输出“THIS DATA IS-“键盘输入17,输出“THIS DATA IS +”键盘输入00,输出”THIS DATA IS ZERO’六.必要的分析6.1 题目一分析1. 压缩BCD码需要用到压缩BCD码的调整指令2. 程序末尾显示要利用DOS功能调用3.显示单个字符,要先将其转化为ASCII 码,再利用DOS功能调用的02H功能。

微机原理实验指导书1_2_4_5

微机原理实验指导书1_2_4_5

微机原理实验指导书郑州大学电气工程学院目录实验一比较字符串实验 (1)实验二两个多位十进制数相加的实验 (14)实验三两个数相乘的实验 (18)实验四键盘输入并显示实验 (21)实验五统计学生成绩 (25)实验六 8259A 中断控制器实验 (29)实验七 8253计数器/定时器实验 (34)实验八 8255并行接口实验 (37)实验九 8251A 串行接口实验 (43)实验十 A/D 实验 (51)附录一调试程序DEBUG (51)附录二汇编程序出错信息 (59)实验一比较字符串实验一.实验目的1.掌握分支程序的设计方法。

2.熟悉在PC机上建立、汇编、链接、调试和运行8086汇编程序的过程。

二.实验内容1.比较两个字符串STRING1和STRING2所含的字符是否相同,若相同则显示‘Match’,否则显示‘No Match’。

2.修改程序,显示所比较字符的个数。

三.程序清单DATAREA SEGMENTSTRING1 DB 'Move the cursor backward.'STRING2 DB 'Move the cursor backward.'MESS1 DB 'Match.',13,10,'$'MESS2 DB 'No match.',13,10,'$'DATAREA ENDSPROGNAM SEGMENTMAIN PROC FARASSUME CS:PROGNAM,DS:DATAREA,ES:DATAREASTART: PUSH DSSUB AX,AXPUSH AXMOV AX,DATAREAMOV DS,AXMOV ES,AXLEA SI,STRING1LEA DI,STRING2CLDMOV CX,STRING2-STRING1REPZ CMPSB?LEA DX,MESS2?MATCH: LEA DX,MESS1DISP: MOV AH,09HINT 21HRETMAIN ENDPPROGNAM ENDSEND START四.实验方法1.用编辑程序EDIT.EXE建立源文件EDIT D101-1.ASM↙在编辑状态下输入源程序,存盘后退出编辑状态。

微机原理实验报告-实验1&2-王浩文

微机原理实验报告-实验1&2-王浩文

微机原理与接口技术实验报告姓名王浩文学号113200880200010 专业年级08电子信息工程实验题目汇编语言程序开发实验一、实验二实验目的1.掌握汇编语言程序开发的步骤;2.编写汇编程序,发现问题,解决问题,复习所学知识的同时弥补学习中的漏洞。

实验内容实验一:1.编程实现两个存储单元的数据传送dddd←ssss实验二:1.(必做)实验内容1:编程实现将sum开始的8个无符号数的和放至bpt开始的两个存储单元中2.(必做)实验内容2:编制一个程序,将变量bufX和bufY中较大者存入bufZ;若两者相等,则将其中之一存入bufZ。

假设变量存放的是8位无符号数3.(选做)实验内容3:汇编语言程序自选(如作业、课件例题)实验分析实验一:1.本次试验是为了熟悉编写程序、汇编、检查程序功能过程,而在编写程序阶段是直接复制的课件中的程序,因此在汇编过程中没有出现卡壳。

但是要注意的是由于汇编程序软件与360杀毒软件有冲突,所以在编译程序时需要将360软件的“实时防护-文件系统防护”关闭。

2.在调试程序的过程中出现了无法找到自己所生成的可执行文件的问题,后将“.asm”文件及其生成的“.obj”“.exe”文件另存在E盘中实验安装程序中的“ML615”文件夹中,可依然无法在Code View中找到目的文件。

问题缘由:“.Asm”文件存储位置设在了U盘中,尽管也为“WL615”文件夹,但是由于Code View的限制,目的文件必须存在E盘中。

尽管后来将目的文件出入E盘,但是却不是E 盘根目录下的“ML615”文件夹,所以Code View无法将其打开。

解决方法:将“.asm”“.obj”“.exe”文件重新另存在地址:“E:\ML615\”下。

3.调试步骤为:①开始\运行\COMMAND 或CMD(进入DOS)②E:③CD ml615④CV exp.exe(exp为生成的可执行文件名)4.在调试过程中可以在下图所示“File”下的第一个图框内修改段地址和偏移地址,如图中为:“128C:0004”,这样在它后面就可以看到相应内存中的数据。

西安交大微机原理第二次实验报告

西安交大微机原理第二次实验报告

微型计算机原理与接口技术第二次实验报告实验者姓名:实验者学号:所在班级:报告完成日期:20年月日实验四8255A并行接口实验一、实验目的1.学会通过PC总线、驱动器、译码器等在PC机外部扩充新的芯片。

2.了解8255A并行口的工作原理。

3.掌握8255A初始化的程序设计方法。

4.掌握8255A方式0的基本输入/输出和方式1的选通型输入/输出方式的使用方法。

二、实验内容1.[实验一]使8255A工作于方式0,将由C口读入的开关状态从A口输出到LED上显示出来。

接线方式:断开电源,将8255A的CS接I/O地址输出端288H~28FH,C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

2.[实验二]使8255工作于方式1,将由A口读入的状态从B口输出到LED上显示出来。

接线方式:断开电源,将8255A的CS接I/O地址输出端288H~28FH,A口接逻辑电平开关K0~K5,B口接LED显示电路L0~L5,C口相应位分别接开关或LED发光二极管。

三、程序及框图1.实验一:8255A工作于方式0[程序代码]PPIA EQU 288HPPIB EQU 289HPPIC EQU 28AHPPICTL EQU 28BHDATA SEGMENTMESS1 DB '8255A IN MODE 0!',0DH,0AH,'$'MESS2 DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESS1 ;数据段段寄存器结构MOV AH,09HINT 21H ;显示提示信息1MOV DX,OFFSET MESS2MOV AH,09HINT 21H ;显示提示信息2MOV AL,10001001BMOV DX,PPICTLOUT DX,ALCOUNT:MOV DX,PPIC ;8255A的C口读入数据IN AL,DXMOV DX,PPIA ;将数据送至8255A的A口输出OUT DX,ALMOV AH,06H ;若有键按下,则退出MOV DL,0FFHINT 21HJZ COUNTMOV AX,4C00HINT 21HCODE ENDSEND START[实验框图]2.实验二:8255A工作于方式1[程序代码]PPIA EQU 288HPPIB EQU 289HPPIC EQU 28AHPPICTL EQU 28BHDATA SEGMENTMESS1 DB '8255A IN MODE 0!',0DH,0AH,'$'MESS2 DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESS1MOV AH,09HINT 21HMOV DX,OFFSET MESS2MOV AH,09HINT 21HMOV AL,10111101BMOV DX,PPICTLOUT DX,ALCOUNT:MOV DX,PPIC ;从C口读入IBF(PC5)状态信号IN AL,DXAND AL,00100000B ;取PC5位来看JZ COUNT ;IBF=0,YES则跳COUNTMOV DX,PPIA ;从A口读入数据IN AL,DXPUSH AXRDC:MOV DX,PPIC ;从C口读入OBF(PC1)状态信号IN AL,DXAND AL,0000010B ;取PC1位来看JZ RDC ;IBF=0,YES则跳COUNTPOP AXMOV DX,PPIB ;向B口输出数据OUT DX,ALMOV AH,06HMOV DL,0FFHINT 21HJZ COUNTMOV AX,4C00HINT 21HCODE ENDSEND START[实验框图]四、实验结果及分析1.实验一:8255A工作于模式0按照连线要求,在TPC-ZK实验板上连好线。

微机原理实验报告

微机原理实验报告

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

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

1.1 微机系统的组成。

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

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

1.2 微机系统的工作原理。

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

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

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

2.1 微机系统的组装。

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

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

2.2 微机系统的调试。

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

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

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

3.1 微机系统的应用领域。

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

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

3.2 微机系统的发展趋势。

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

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

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

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

微机原理与接口技术实验一二[含实验要求].

微机原理与接口技术实验一二[含实验要求].
只显示某一个寄存器内容,则在R后面加寄存器名,例如:
>r dx
DX 0034
:
单步执行第5条指令
>t
观察寄存器AH中的内容
>r ah
AH 02
:
连续运行至前6条指令结束(INT 20返回
>g c
查看执行结果
同样,按F4可以看到程序的执行结果,按Esc键返回调试界面。
以下是在显示窗口看到的反汇编信息——
5.将实验设备拆线、整理好并关掉计算机再离开实验室。
四.实验报告
1.使用学校专门的实验报告纸撰写报告,主体内容需要手工书写。要求字迹工整,条理清楚,简明扼要,装订整齐,要有单独的封面页。
实验报告封面页需依次注明以下信息:
◇课程名称:微机原理与接口技术实验报告。
◇实验序号及实验名称,如:实验一软件基础。
这里选择Build选项,汇编、链接成功后,弹出如下图4所示的对话框。
图4汇编链接成功后弹出的对话框
从对话框可知,程序无任何语法错误,正确生成EXE文件。对话框最下面一行的提示作用如下:
View Results:用于查看汇编/链接的结果,如果有错将提示具体的错误信息。
Run Program:运行程序。
五.上机调试的习题
1.分别以二进制数形式和十六进制数形式写出以下指令的机器码,并在二进制数表示
的机器码中标明其各个组成部分及其含义。
MOV AX,DX ADD CX,[BX+8] SUB [BX+SI],SI
MOV AL,DL ADD CX,BX SBB [DI],AL
2.已知从2000H:7358H开始的4个MOV AX,2000H
提示:题中的已知条件可用CodeView的MF命令、R命令直接写入相应的内存单元或寄存器。

北邮 微机原理实验报告

北邮 微机原理实验报告

北邮微机原理实验报告北邮微机原理实验报告引言:微机原理是计算机科学与技术专业的一门重要课程,通过学习和实践,我们可以深入了解计算机的组成结构和工作原理。

本次实验旨在通过对北邮微机原理实验的探索,加深对计算机硬件和软件的理解,并提升我们的实践能力。

一、实验目的本次实验的目的是熟悉计算机的硬件组成和工作原理,并通过实践操作加深对微机原理的理解。

具体包括以下几个方面:1. 熟悉计算机的硬件组成,包括中央处理器(CPU)、内存、硬盘等;2. 掌握计算机的启动过程和操作系统的加载;3. 理解计算机的指令集和指令执行过程;4. 学习计算机的输入输出设备和外部接口。

二、实验过程1. 实验一:计算机硬件的组装与连接在本实验中,我们需要将计算机的各个硬件组件进行正确的连接和组装。

首先,我们需要将主板与CPU、内存、显卡等硬件设备进行连接。

其次,我们需要将硬盘、光驱等存储设备与主板进行连接。

最后,我们需要将键盘、鼠标、显示器等外部设备与计算机进行连接。

通过这一步骤,我们可以了解计算机硬件的组成结构,并掌握正确的连接方式。

2. 实验二:计算机的启动过程和操作系统的加载在本实验中,我们需要了解计算机的启动过程和操作系统的加载过程。

首先,我们需要按下电源按钮,启动计算机。

然后,计算机会进行自检和硬件初始化,并加载操作系统。

在这个过程中,我们可以观察到计算机的启动画面和加载过程。

通过这一步骤,我们可以深入了解计算机的启动过程和操作系统的加载机制。

3. 实验三:计算机的指令集和指令执行过程在本实验中,我们需要学习计算机的指令集和指令执行过程。

首先,我们需要了解不同类型的指令,包括算术指令、逻辑指令、数据传输指令等。

然后,我们需要通过编写简单的汇编语言程序,来实现对数据的处理和操作。

在这个过程中,我们可以观察到指令的执行过程和结果。

通过这一步骤,我们可以深入理解计算机的指令集和指令执行过程。

4. 实验四:计算机的输入输出设备和外部接口在本实验中,我们需要学习计算机的输入输出设备和外部接口。

微机原理实验

微机原理实验
பைடு நூலகம்
实验一:两个多位十进制数相加
本程序将两个多位十进制数相加, 其中加数与被加 数均以ASCII码形式存放在以DATA1和DATA2为首的5 个内存单元中(低位在前), 相加结果被送回DATA1 处。
程序中先要把加数与被加数由十进制ASCII码转化 为十六进制的数字串, 然后将它们进行带进位相加并 作AAA调整,最后将结果保存。 程序流程图见下页:
实验二:排序
本程序将数据区中的10个数由小到大排序,而且 排序后的数, 仍存放在该区域中。 程序采用冒泡法,设置了内、外两层循环, 其中 在第 i 次外循环中通过(10 - i)次内循环找出剩下 数中的最小数, 然后与当前数进行交换,从而完成 排序。 程序流程图见下页。
实验三
一、实验目的
RAM 实验
微机原理课程实验
实验一:两个多位十进制数相加 实验二:排序 实验三 RAM 实验
《微机原理》是一门对实际动手能力要求比较高 的学科。由于《微机原理》课程的实验种类繁多,但 课时有限,我们选择了比较具有代表性的几个实验。 该课程在硬件方面着重讨论了8086的体系结构、接口 技术 及其应用等。而这些硬件方面的内容如果能够结 合实际动手进行实验,将获得较佳的学习效果。
1、熟悉6116静态RAM的使用方法,掌握PC机外存扩充的手段。 2、了解PC机62芯总线信号的定义,领会总线及总线标准的意 义。 3、通过对硬件电路的分析,了解总线的工作时序。
二、实验内容 对指定地址的RAM进行数据读/写
1、将硬件电路连接好,如左图所示。 2、编制程序,将A--Z26个字符序列寸入A0000~A07FF单元, 再从中读出并显示在屏幕上。 3、使用DEBUG的F命令,填充6116RAM的A000:0000~07FF单元 全'A'字符,再填充A000:0800~0FFF单元全为'B'字符
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理第1、2次实验
微机原理第1、2次实验
3.1 IO口读写实验(245、373)
1、实验内容
利用板上集成电路上的资源,扩展一片 74HC245,用来读入开关状态;扩展一片 74HC373,用来作来输出口,控制 8 个 LED 灯。

2、实验目的
(1)了解CPU 常用的端口连接总线的方法。

(2)掌握74HC245、74HC373 进行数据读入与输出。

3、实验电路
4、实验流程图
5、实验说明
一般情况下,CPU 的总线会挂有很多器件,如何使这些器件不造成冲突,这就要使用一些总线隔离器件,例如 74HC245、74HC373。

74HC245 是三态总线收发器,本实验用它做输入,片选地址为0D0000H-0DFFFFH。

就是用于读入开关值。

74HC373 是数据锁存芯片,通过它作数据的锁住输出。

6、发现的问题
(1)实验指导书中译码器上的连线与代码中的地址不对应,在CPU的输出状态时译码器的Y0为低电平,其他位为高电平,应将原先连接在Y9的线改接到Y0上。

如图:
如果不想改电路,把代码中的OUT373 EQU 8000H改为OUT373 EQU 0E000H,也能使CPU在输出状态时Y9呈现低电平。

如图:
(2)元件与元件直接必须用导线相连,两个元件挨在一起是不算作导通的
否则会出现比如下面这种即使两端有电势差LED灯也不亮的情况
第2次实验,将LED灯修改为七段数码管
如图,只需将右边改为下图这样即可
添加三极管的目的是为了在8个开关都闭合(向74HC245输入低电平)的情况下,使七段数码管的第一根管脚断路,七段数码管不发光,避免了在8个开关都闭合时显示数字8。

相关文档
最新文档