华工微机实验报告

合集下载

华工微机实验报告-实验三-分支和循环设计实验

华工微机实验报告-实验三-分支和循环设计实验

实验报告课程名称微型计算机原理及其应用实验项目分支和循环设计实验学生姓名朱轲信学生学号201530281598专业/班级信息工程冯秉铨实验班实验成绩电子与信息学院实验中心制二〇一七年版预习报告一、实验目的1.掌握分支程序的结构。

2掌握分支程序的设计、调试方法。

3加深对循环结构的理解。

4掌握循环结构程序设计的方法。

5熟练掌握调试循环程序的方法。

二、实验设备微机一台、TDS-MD微机一台三、实验内容及步骤1.设计一数据块间的搬移程序设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。

源数据块和目的数据块在存贮中可能有三种情况。

对于两个数据块分离的情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可,但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。

可以得出以下结论:当源数据块首址〉目的块首址时,从数据块首址开始传送数据。

当源数据块首址〈目的块首址时,从数据块末地址开始传送数据。

代码:STACK SEGMENT STACK'STACK'DB 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:MOV CX,0AHMOV BX,3500HMOV SI,[BX]MOV DI,[BX+2]CMP SI,DIJA A1MOV AX,SIADD AX,CXMOV SI,AXMOV AX,DIADD AX,CXMOV DI,AXDEC SIDEC DISTDREP MOVSBJMP EXITA1: CLDREP MOVSBEXIT:MOV AX,4C00HINT 21HCODE ENDSEND START流程图:结果:在源数据块中存入6个数,分别使SI大于、等于、小于DI均发觉数据正确传送。

可见程序正确。

2. (1)编制程序使S=1+2*3+3*4+4*5+……N(N+1),直到N(N+1)项大于200为止。

华南理工大学微机与接口实验报告(四实验,题目原理流程图代码截图完整版)

华南理工大学微机与接口实验报告(四实验,题目原理流程图代码截图完整版)

微机原理实验报告班 级:2012级电子科学与技术卓工班级电子科学与技术卓工班姓 名: 黄中一黄中一 学 号: 201236460273序 号:评阅分数:评阅分数:实验一一、实验目的1、学会如何建立汇编源文件ASM2、学会调用MASM 宏汇编程序对源文件进行汇编,获得目标程序宏汇编程序对源文件进行汇编,获得目标程序 OBJ 及LST 列表文件列表文件3、学会调用LINK 连接程序汇编后的目标文件OBJ 连接成可执行的文件连接成可执行的文件EXE 4、学会使用DEBUG 调试程序把可执行文件装入内存并调试运行,用D 命令显示目标程序,用U 命令对可执行文件反汇编,用G 命令运行调试。

命令运行调试。

二、实验设备装有MASM 软件的IBM PC 机三、实验内容1、汇编程序对源程序进行编译,生成扩展名为OBJ 的目标文件;连接程序是将目标程序和库文件进行连接、定位,生成扩展名为EXE 的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。

是对目标文件进行调试,验证它的正确性。

2、DEBUG 程序各种命令的使用方法程序各种命令的使用方法功能功能命令格式命令格式 使用说明使用说明显示内存单元内容显示内存单元内容D 地址地址从指定地址开始显示40H 个字节或80H 个字节个字节 修改内存单元内容修改内存单元内容 E 地址地址先显示地址和单元内容等待输入修改的内容输入修改的内容检查和修改寄检查和修改寄存器的内容存器的内容R 显示全部寄存器和标志位及下条指令单元十六进制数码和反汇编格式和反汇编格式反汇编反汇编U 地址地址从指定地址开始反汇编16个或32个字节个字节 汇编汇编 A 地址地址从指定地址直接输入语句并从指定指定汇编装入内存从指定指定汇编装入内存跟踪跟踪 T =地址=地址 从指定地址开始逐条跟踪指令运行运行 G =地址=地址无断点,执行正在调试的指令执行正在调试的指令 退出退出Q退出DEBUG 返回DOS3、实验过程①、在edit 环境,写字板,记事本等中输入源程序。

华科 微机实验报告2-2014

华科 微机实验报告2-2014

实验名称 分支与循环程序设计实验 指导教师专业班级 姓名 学号 联系电话一、任务要求1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。

240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。

二、设计思路1.分段函数设计首先利用比较转移指令CJNE 来判断X 是否等于临界值20,40,若不等,再根据执行CJNE 指令后的进位位CY 的值来判断X 与临界值的的大小关系,CY=0则X 大于临界值,CY=1则X 小于临界值;然后根据X 的值所在的区间进行相应的计算。

除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高八位与低八位应分开存储。

2.24进制时钟首先构建一个三重循环实现“一秒延时”,再设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。

秒和分计60次,小时计24次,分、秒达到59,小时达到23时,下一次应该为零。

程序运行时修改P3.0的值可以实现暂停和继续的功能。

三、资源分配1.分段函数外部寄存器DPTR用作数据指针,变量X的值存于片外RAM的3000H单元,计算结果存于片外RAM的3001H~3002H单元,按位取反计算结果存于3001H单元,而除法计算结果的商与余数和乘方计算中结果的高、低八位分别存储于3001H~3002H单元。

2.二十四小时制电子时钟工作寄存器R0,R1,R2分别用于秒、分、时的循环计数,R3,R4,R5用作一秒延时的循环计数,秒、分、时数值分别由P0、P1、P2端口输出。

四、流程图1.分段函数2.二十四小时制电子时钟五、源代码(含文件头说明、语句行注释)1.分段函数ORG 0000HLJMP MAINORG 0100HMAIN: MOV A, #29H ;取数XMOV DPTR, #3000H ;设置数据指针MOVX @DPTR, A ;X存于片外RAMCLR C ;进位位清零STEP1:CJNE A, #14H, STEP2 ;将A与20比较,若不等于20,跳转至STEP2Y1: CPL A ;A取反MOV DPTR, #3001H ;设置数据指针MOVX @DPTR, A ;将计算结果存于片外地址3001HSJMP DONESTEP2:JNC STEP3 ;判断CY是否为0,若为0,跳转至STEP3SJMP Y1 ;CY不为0则跳转至Y1STEP3:CLR C ;进位位清零CJNE A,#28H, STEP4 ;A中内容与40比较,若不等于40,跳转至STEP4 Y2: MOV B,A ;复制AMUL AB ;X平方MOV DPTR, #3001H ;设置数据指针MOVX @DPTR,A ;结果低八位存于片外地址3001HINC DPTR ;数据指针加一MOV A,B ;将B中内容赋给AMOVX @DPTR,A ;结果高八位存于片外地址3002HSJMP DONESTEP4:JNC Y2 ;判断CY是否为0,若为0,跳转至Y2SJMP Y3 ;否则跳转至Y3Y3: MOV B,#02HDIV AB ;计算X/2MOV DPTR,#3001H ;设置数据指针MOVX @DPTR,A ;结果商存于片外地址3001HINC DPTR ;数据指针加1MOV A,B ;将B中内容赋给AMOVX @DPTR,A ;结果余数存于片外地址3002H SJMP DONEDONE: SJMP $END2.二十四小时制电子时钟ORG 0000HLJMP STARTORG 0010HSTART: MOV SP,#40H ;设置堆栈MOV R0,#00H ;R0,R1,R2清零MOV R1,#00HMOV R2,#00HMOV P0,#00H ;P0,P1,P2清零MOV P1,#00HMOV P2,#00HPAUSE: JB P3.0,PAUSE ;设置暂停功能SEC: MOV A,R0 ;A←R0MOV P0,A ;秒数传至P0端口ADD A,#01H ;秒进位DA A ;A转BCD码MOV R0,A ;R0←AACALL OSEC ;一秒延时CJNE A,#60H,PAUSE ;进位MIN: MOV R0,#00H ;R0,P0清零MOV P0,#00HMOV A,R1 ;A←R1ADD A,#01H ;分进位DA A ;A转BCD码MOV P1,A ;分数传至P1端口MOV R1,A ;R1←ACJNE A,#60H,PAUSE ;进位HOUR: MOV P0,#00H ;R1,P0,P1清零 MOV P1,#00HMOV R1,#00HMOV A,R2 ;A←R2ADD A,#01H ;时进位DA A ;A转BCD码MOV P2,A ;小时数传至P2端口 MOV R2,A ;R2←ACJNE A,#24H,PAUSE ;判断0点SJMP START ;到0点重复OSEC: MOV R4,#46 ;一秒延时子程序L3: MOV R5,#152L2: MOV R3,#70L1: DJNZ R3,L1DJNZ R5,L2DJNZ R4,L3RETEND六、程序测试方法与结果1.分段函数X取不同的值进行运算(1)X=50(2)X=30(3)X=16结果正确。

微机基础实验报告心得

微机基础实验报告心得

微机基础实验报告心得引言微机基础实验是计算机专业学生必修的一门课程,通过实验来加深对微机基本原理和实践操作的理解。

在本学期的实验课程中,我完成了一系列的实验项目,并在实验报告中记录了实验过程和结果。

通过这些实验,我不仅提高了自己的实验能力,也对计算机体系结构和操作系统原理有了更深入的理解。

实验内容本学期的微机基础实验主要包括微机系统硬件实验和汇编程序设计实验两个部分。

微机系统硬件实验这部分实验主要包括微机系统的组装、调试和测试。

我按照给定的实验指导书,逐步完成了微机系统的组装工作,包括主板、CPU、内存、硬盘和显示器等组件的安装。

在组装完成后,我使用CMOS Setup实用程序对系统进行了配置,并启动了计算机。

接着,我按照实验指导书的要求,进行了各种硬件设备的测试。

我检查了主板上的跳线设置,确认了硬盘和内存的正常工作。

同时,我还学会了使用POST (Power-On Self Test)诊断技术,对计算机进行了自检。

通过这些实验,我对微机硬件的原理和工作流程有了更深入的了解。

汇编程序设计实验汇编程序设计实验是微机基础课程的重要组成部分。

在这部分实验中,我学习了汇编语言的基本语法和指令,并通过实验验证了相关知识。

首先,我使用汇编语言编写了一个简单的程序,实现了从键盘输入一个数,然后将其加1后输出到屏幕的功能。

随后,我使用调试工具对程序进行了调试,检查了程序是否工作正常。

在调试过程中,我学会了使用调试命令和寄存器监视窗口,帮助我分析程序的运行状态。

除此之外,我还完成了一些更复杂的汇编程序设计实验。

通过这些实验,我掌握了汇编程序的编写和调试技巧,并深入了解了x86架构的汇编指令集。

心得体会通过本学期的微机基础实验,我获得了很多宝贵的经验和体会。

首先,我深刻理解了理论和实践的关系。

课堂上学习的知识虽然重要,但只有通过实际操作才能真正理解和掌握。

实验过程中的种种问题和挑战也激发了我继续学习的动力。

其次,我明白了团队合作的重要性。

微机基础实验报告

微机基础实验报告

一、实验目的1. 熟悉微机的基本结构和工作原理。

2. 掌握微机基本操作,包括启动、关闭、使用键盘和鼠标等。

3. 学习微机操作系统的基础知识,包括文件管理、程序管理、系统设置等。

4. 培养动手能力和独立解决问题的能力。

二、实验环境1. 硬件环境:微机一台、显示器一台、键盘一个、鼠标一个。

2. 软件环境:Windows操作系统、常用办公软件等。

三、实验内容及步骤1. 微机基本结构和工作原理(1)观察微机外部结构,了解各部件的名称和功能。

(2)打开微机,观察启动过程,了解微机自检和启动顺序。

(3)学习微机内部结构,了解CPU、内存、硬盘、显卡等部件的功能。

(4)了解微机工作原理,包括指令执行过程、数据传输过程等。

2. 微机基本操作(1)学习启动和关闭微机的方法,了解安全关机的重要性。

(2)学习使用键盘和鼠标进行基本操作,如打开、关闭程序、切换窗口等。

(3)学习使用快捷键提高工作效率。

3. 微机操作系统基础知识(1)学习Windows操作系统的基本界面和功能。

(2)学习文件管理,包括创建、复制、移动、删除文件和文件夹等操作。

(3)学习程序管理,包括安装、卸载、运行程序等操作。

(4)学习系统设置,包括显示设置、声音设置、网络设置等。

4. 实验练习(1)练习使用Windows自带的画图软件,绘制简单的图形。

(2)练习使用Word文档编辑功能,制作一份简单的文档。

(3)练习使用Excel表格处理功能,制作一份简单的表格。

(4)练习使用PowerPoint演示文稿制作功能,制作一份简单的演示文稿。

四、实验结果与分析1. 实验结果通过本次实验,我们熟悉了微机的基本结构和工作原理,掌握了微机基本操作,学习了微机操作系统基础知识,并能够运用所学知识解决实际问题。

2. 实验分析(1)在实验过程中,我们发现微机的基本操作对于提高工作效率具有重要意义。

熟练掌握键盘和鼠标操作,能够使我们更加高效地完成工作。

(2)在文件管理方面,了解文件和文件夹的基本操作,有助于我们更好地管理计算机中的数据。

华南理工大学微机实验三

华南理工大学微机实验三

微机原理实验报告实验三班级:2012级信息工程(7)班姓名:学号:序号:评阅分数:一、实验目的1、自学TPC-ZK通用32位微机接口实验系统的组成。

2、掌握实验系统中接口地址译码电路的工作原理及计算方法。

3、掌握简单I/O端口的读写操作。

4、掌握8255的工作原理及编程方法。

二、实验题目通过并行接口8255实现十字路口交通灯的模拟控制,如图29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。

编程使六个灯按交通灯变化规律亮灭。

十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮一定时间。

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。

(3)南北路口的红灯、东西路口的绿灯同时亮一定时间。

(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。

(5)转(1)重复。

附加功能:1)PC3键作为右侧那组信号等的优先控制信号,如果PC3键为高,右侧信号灯立即转换成绿灯亮(PC0=1),左侧信号灯红灯亮(PC7=1),其它信号灯为0 2)PC4键作为左侧那组信号等的优先控制信号,如果PC4键为高,左侧信号灯立即转换成绿灯亮(PC5=1),右侧信号灯红灯亮(PC2=1),其它信号灯为0 3)PC3=0,PC4=0,依照正常信号灯控制方式。

三、程序流程图四、源程序清单DA TAS SEGMENTio8255a equ 288hio8255b equ 289hio8255c equ 28ahio8255d equ 28bhportcl db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据db 0ffh;结束标志DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXre_on:mov bx,0on1: mov dx,io8255d ;检查是否关闭紧急开关mov al,89h ;设c口为输入out dx,almov dx,io8255cin al,dxtest al,10h ;检测Pc4=1?jnz green_left ;亮左边灯test al,8h ;检测pc3=1?jnz green_right ;亮右边灯mov dx,io8255dmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255con:mov al,portcl[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,200 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,2000 ;有,长延时de1:mov di,9000 ;di赋初值9000de0:dec dijnz de0 ;di不为零loop de1push dxmov dl,0ffh ;检测是否有键盘输入?mov ah,06hint 21hpop dx ;弹出dx值jz on1 ;无按键,跳回on1 exit: MOV AH,4CH ;结束INT 21Hgreen_left: ;左边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,24h ;左边绿灯右边红灯out dx,aljmp on1green_right: ;右边开关闭合程序mov dx,io8255dmov al,90h ;设为c口输出out dx,almov dx,io8255cmov al,81h ;左边红灯右边绿灯out dx,aljmp on1CODES ENDSEND START。

华工计组实验报告

实验名称:计算机组成原理实验实验目的:1. 理解计算机组成原理的基本概念和原理。

2. 掌握计算机各个组成部件的功能和相互关系。

3. 通过实验加深对计算机组成原理的理解和应用。

实验时间:2023年X月X日实验地点:计算机实验室实验器材:1. 计算机组成原理实验箱2. 计算机组成原理实验指导书3. 计算器4. 计算机组成原理实验数据记录表实验内容:一、实验一:计算机硬件系统结构1. 实验目的:了解计算机硬件系统的基本结构,包括中央处理器(CPU)、存储器、输入输出设备等。

2. 实验步骤:(1)观察实验箱的硬件组成,识别各个硬件部件。

(2)了解各个硬件部件的功能和相互关系。

(3)记录实验数据。

3. 实验结果与分析:实验结果显示,计算机硬件系统主要由CPU、存储器、输入输出设备等组成。

CPU负责处理数据,存储器负责存储数据,输入输出设备负责与用户进行交互。

二、实验二:CPU工作原理1. 实验目的:了解CPU的工作原理,包括指令周期、时钟周期、数据通路等。

2. 实验步骤:(1)观察实验箱的CPU模块,识别各个部件。

(2)了解CPU各个部件的功能和相互关系。

(3)进行指令周期和时钟周期的实验,记录实验数据。

3. 实验结果与分析:实验结果显示,CPU的工作原理包括指令周期和时钟周期。

指令周期是指执行一条指令所需的时间,时钟周期是指CPU中时钟信号的周期。

实验数据表明,CPU通过数据通路进行指令的执行,完成数据处理。

三、实验三:存储器工作原理1. 实验目的:了解存储器的工作原理,包括随机存储器(RAM)、只读存储器(ROM)等。

2. 实验步骤:(1)观察实验箱的存储器模块,识别各个存储器。

(2)了解存储器的功能和特点。

(3)进行存储器读写实验,记录实验数据。

3. 实验结果与分析:实验结果显示,存储器包括RAM和ROM。

RAM具有读写功能,而ROM只能读。

实验数据表明,存储器通过地址译码器进行寻址,实现数据的读写。

华中科技大学HUST微机原理并行IO接口数码管实验报告

电子信息与通信学院实验报告实验名称:微机原理实验课程名称:并行IO接口设计班级:姓名:学号:教师:一、实验目的1.掌握GPIO IP核的工作原理和使用方法2.掌握中断控制方式的IO接口设计原理3.掌握中断程序设计方法4.掌握IO接口程序控制方法-------查询方式-------延时方式二、实验任务写一个数码管滚动输出任意数字的程序,并下载到FPGA板子上,用延时、中断两种方式实现。

三、实验原理硬件实现框图如图所示:四、硬件实现步骤1.使用XPS创建一个基于AXI总线的最小计算机系统。

File –> New BSB Project,如图:2.修改时钟设置:将时钟产生器的时钟输入信号进行修改,修改为单一时钟源。

修改后的结果如图:3.添加GPIO IP核,设置seg_0配置:a.在IP Catalog标签中,双击下面图标创建GPIO IP核:b.添加GPIO IP核后,将名字改为LED_16Bits,如图:c.更改seg_0配置窗口的属性,如图:4.添加AXI Interrupt Controller IP核:a.在IP Catalog标签中,双击下面图标创建INTC IP核:b.添加axi_intc_0的中断源,如图:c.将microblaze_0实例的INTERRUPT引脚选择axi_intc_0_INTERRUPT,如图:5.产生外部GPIO连接:a.选中seg_0中的GPIO_IO_O,选择make external,生成外部连接端口;选中GPIO_IO,设置为“No connection”,取消其外部连接端口;选中seg_0中的GPIO2_IO_O,选择make external,生成外部连接端口;选中GPIO2_IO,设置为“No connection”,取消其外部连接端口。

结果如图:b.在ports标签下,展开External Ports项,可看到seg_0生成的seg_0_GPIO2_IO_pin和seg_0_GPIO_IO_pin端口,如图:6.添加timer IP核:a.选择如图的IP核并双击,添加到工程:b.中断信号的连接结果如图所示:7.配置UCF文件:在UCF文件中修改如下所示配置,配置LED连接电路约束:NET "CLK" TNM_NET = sys_clk_pin;TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz;NET "CLK" LOC = "E3" | IOSTANDARD = "LVCMOS33";NET "RESET" LOC = "E16" | IOSTANDARD = "LVCMOS33";NET "RsRx" LOC = "C4" | IOSTANDARD = "LVCMOS33";NET "RsTx" LOC = "D4" | IOSTANDARD = "LVCMOS33";NET "seg_0_GPIO2_IO_pin<0>" LOC = "L3" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<1>" LOC = "N1" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<2>" LOC = "L5" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<3>" LOC = "L4" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<4>" LOC = "K3" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<5>" LOC = "M2" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<6>" LOC = "L6" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO2_IO_pin<7>" LOC = "M4" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<0>" LOC = "N6" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<1>" LOC = "M6" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<2>" LOC = "M3" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<3>" LOC = "N5" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<4>" LOC = "N2" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<5>" LOC = "N4" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<6>" LOC = "L1" | IOSTANDARD = "LVCMOS33"; NET "seg_0_GPIO_IO_pin<7>" LOC = "M1" | IOSTANDARD = "LVCMOS33";8.创建工程过程完成后,a.在主界面下选择Hardware->Generate Netlist;b.在主界面下选择Hardware->Generate Bitstream;c.单击Graphical Design View,可以看到系统的连接图,如下:五、软件设计1.中断方式实现数码管滚动任意数字用户应用程序的设计包括定时器配置、启动中断系统、设计中断服务程序。

5.计算机组成和体系结构华工实验五CPU组成与机器指令执行周期实验.docx

实验五 CPU组成与机器指令执行周期实验一、实验目的1.将微程序控制器同执行部件〔整个数据通路〕联机,组成一台模型计算机。

2.用微程序控制器控制模型计算机的数据通路。

3.通过TEC-5执行由8条机器指令组成的简单程序,掌握机器指令与微指令的关系,结实建立计算机的整机概念。

二、实验电路本次实验将前面几个实验中的所有电路,包括运算器、存储器、通用存放器堆、微程序控制器等模块组合在一起,构成一台简单的模型机。

因此,在根本实验中,这是最复杂的一个实验,也将是最有收获的一个实验。

在前面的实验中,实验者本身作为“控制器〞,完成了对数据通路的控制。

而在本次实验中,数据通路的控制将交由微程序控制器来完成。

TEC-5从内存中取出一条机器指令到执行指令完毕的一个指令周期,是由微程序完成的,即一条机器指令对应一个微程序序列。

三、实验设备1.TEC-5计算机组成原理实验系统1台2.逻辑测试笔一支〔在TEC-5〕上3.双踪示波器一台〔公用〕4.直流万用表一只〔公用〕四、实验任务1.对机器指令组成的简单程序进展译码。

将下表的程序按机器指令格式手工汇编成二进制机器代码,此项任务请在预习时完成。

2.按照下面框图,参考前面实验的电路图完成连线,工作量大概是:控制台、时序部件、数据通路和微程序控制器之间的连线。

控制器是控制部件,数据通路是执行部件,时序发生器是时序部件。

注意通用存放器堆RF的RD1、RD0、RS1、RS0、WR1、WR0与IR3-IR0间的连线。

图3.9 模型机连线示意图3.将任务1中的程序代码用控制台指令存入内存中,并根据程序的需要,用数码开关SW7-SW0设置通用存放器的数据。

注意:由于设置通用存放器时会破坏存储器单元的数据,因此应先设置存放器中的数据,再设置存储器中的程序和数据。

要求使用两组存放器数据,一组存放器数据在执行ADD R1,R0指令时产生进位,一组存放器数据在执行ADD R1,R0指令时不产生进位,以观察同一程序程序的不同执行流程。

微机原理综合实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

微机系统与接口实验电子与信息学院电类联合班何俊实验二:将ASCII码表示的十进制数转换为二进制数1.将ASCII码表示的十进制数转换为二进制数。

DATA SEGMENTORG 3500HNUM1 DB 5 DUP(0)ORG 3510HNUM2 DD 5 DUP(0)DATA ENDSSTACK SEGMENT STACK 'STACK'DB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,OFFSET NUM1MOV SI,AXMOV AX,OFFSET NUM2MOV DI,AXMOV CX,5MOV AX,0MOV BH,0CHANGE:MOV BL,[SI]SUB BL,30HMOV DX,10MUL DXADD AX,BXLOOP CHANGEEXIT:MOV WORD PTR[DI],AXMOV AH,4CHINT 21HCODE ENDSEND START2.将从键盘输入的五位十进制数的ASCII码已存在3500起始的内存单元中。

把它转换成BCD码后,再按位分别存入350A起始的内存单元内。

若输入的不是十进制的ASCII码,则显示FF.DATA SEGMENTORG 3500HNUM1 DB 5 DUP(0);NUM1 DB ‘12345’ORG 350AHNUM2 DB 5 DUP(0)DATA ENDSSTACK SEGMENTDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,OFFSET NUM1MOV SI,AXMOV AX,OFFSET NUM2MOV DI,AXMOV CX,5CHANGE:CMP AL,39HJA ERRORCMP AL,30HJB ERRORSUB AL,30HMOV [DI],ALADD SI,1ADD DI,1LOOP CHANGEJMP EXITERROR:MOV BX,0FFHMOV [DI],BXEXIT:MOV AH,4CHINT 21HCODE ENDSEND START3.将十六位二进制数转换为ASCII码表示的十进制数。

十六进制数的值域为0~65535,最大可转换为五位十进制数。

DATA SEGMENTORG 3500HNUM1 DD 0ORG 3510HNUM2 DB 5 DUP(0)DATA ENDSSTACK SEGMENTDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,OFFSET NUM1MOV AX,OFFSET NUM2MOV DI,AXADD DI,5MOV CX,5MOV AX,WORD PTR[SI]MOV BX,10CHANGE:MOV DX,0DIV BXADD DL ,30HMOV [DI],DLDEC DILOOP CHANGEEXIT:MOV AH,4CHINT 21HCODE ENDSEND START4.十六进制数转换为ASCII码DATA SEGMENTORG 3500HNUM1 DD 0ORG 3510HNUM2 DB 4 DUP(0)DATA ENDSSTACK SEGMENTDD 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,OFFSET NUM1MOV SI,AXMOV AX,OFFSET NUM2MOV DI,AXMOV BL,2MOV CX,4CHOICE:MOV AL,[SI]AND AL,0FHCMP AL,9JBE CHANGE_11JMP CHANGE_12CHANGE_11:ADD AL,30HJMP NEXT_1CHANGE_12:ADD AL,37HNEXT_1:MOV [DI],ALADD DI,1MOV AL,[SI]AND AL,0F0HSHR AL,CLCMP AL,9JBE CHANGE_21JMP CHANGE_22CHANGE_21:ADD AL,30HJMP NEXT_2CHANGE_22:ADD AL,37HNEXT_2:MOV [DI],ALADD DI,1ADD SI,1DEC BXJNE CHOICEEXIT:MOV AH,4CHINT 21HCODE ENDSEND START5.BCD码转换为二进制码DATA SEGMENTORG 3500HNUM1 DB 8 DUP(0)ORG 3510HNUM2 DB 4 DUP(0)DATA ENDSSTACK SEGMENTDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,OFFSET NUM1MOV SI,AXMOV AX,OFFSET NUM2MOV DI,AXMOV CX,4MOV BL,10CHANGE:MOV AL,[SI]MUL BLADD SI,1ADD AL,[SI]ADD SI,1MOV [DI],ALADD DI,2LOOP CHANGEEXIT:MOV AH,4CHINT 21HCODE ENDSEND START实验三分支和循环程序设计实验1.设计一数据块间的搬移程序DATA SEGMENTORG 3500HMESSAGE1 DB 'HELLO KITTY'COUNT EQU 11DATA ENDSEXTRA SEGMENTORG 3510HMESSAGE2 DB 11 DUP(0)EXTRA ENDSSTACK SEGMENTDD 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:EXTRA,SS:STACK START:MOV AX,DATAMOV DS,AXMOV AX,OFFSET MESSAGE1MOV SI,AXMOV AX,OFFSET MESSAGE2MOV DI,AXMOV AX,DSMOV ES,AXMOV CX,COUNTCLDCOMPARE:CMP SI,DIJB NEXT1JMP NEXT2NEXT1:STDADD SI,COUNT-1ADD DI,COUNT-1REP MOVSBJMP EXITNEXT2:REP MOVSBJMP EXITEXIT:MOV AH,4CHINT 21HCODE ENDSEND START2.编制程序使S=1+2*3+3*4+4*5+……N(N+1),直到N(N+1)项大于200为止。

DATA SEGMENTORG 3500HRESULT DD 0DATA ENDSCODE SEGMENTASSUME CS:CODESTART:MOV DX,1MOV BL,2SUM:MOV AL,BLINC BLMUL BLADD DX,AXCMP AX,200JB SUMPRINT:MOV AX,OFFSET RESULTMOV DI,AXMOV [DI],DXEXIT:MOV AH,4CHINT 21HCODE ENDSEND START3.求某个数据区内负数的个数。

DATA SEGMENTORG 3500HNUM DB 6H,12H,88H,82H,90H,22H,33H DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,OFFSET NUMMOV SI,AXMOV BL,0MOV CL,[SI]MOV CH,0INC SICHECK:MOV AL,[SI]CMP AL,10000000BJBE NEXTINC BLNEXT:INC SILOOP CHECKPRINT:MOV [SI],BLEXIT:MOV AH,4CHINT 21HCODE ENDSEND START实验四子程序设计程序采用菜单式选择,可接收用户输入的命令(1~5),各命令如下:按1键完成字符串小写字母变大写字母用户输入一由英文大小写字母或数字0~9组成的字符串(以回车结束),程序逐个检查字符串中各字符,将原串中小写字母变成大写字母,其它字符不变,并在屏幕上显示。

用户按任一键,重做,按ESC键,返回主菜单。

按2键完成找最大值(二选一)1、接收用户输入的可显示字符串(以回车结束),程序将其中ASCII码值最大的字符显示出来。

2、接收用户输入若干无符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。

用户按任一键,重做,按ESC键,返回主菜单。

按3键完成排序(二选一)1、接收用户输入的可显示字符串,以回车结束。

程序按ASCII码值大小由大到小排序并输出显示。

2、接收用户输入若干个有符号8位数(以空格逗号为分隔符,以回车结束)。

程序将其中最大的数显示出来。

用户按任一键,重做,按ESC键,返回主菜单。

按4键显示时间首先提示用户对时,即用户输入时,分,秒(以空格或冒号分隔,以回车结束),然后,在屏幕上不断显示时间,格式为:××(时):××(分):××(秒),最好定点显示。

用户按任一键,重新对时,按ESC键,返回主菜单。

按5键,结束程序运行,返回系统提示符。

DATA SEGMENTORG 0000H;BUFFER POOL.BUFF DB 100DB 0DB 100 DUP(0)DATA ENDSSTACK SEGMENTSTT DB 100 DUP(0)TOP EQU LENGTH STTSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK;MAIN PROCESSSTART:MAIN PROC FARFIRST:MOV AX,DATAMOV DS,AXMOV SI,OFFSET BUFFMOV AX,STACKMOV SS,AXMOV SP,OFFSET TOPCHOICE:MOV AH,1INT 21HCMP AL,'5'JE EXITCMP AL,'1'JE FUNCTION1CMP AL,'2'JE FUNCTION2CMP AL,'3'JE FUNCTION3CMP AL,'4'JE FUNCTION4 CHANGE_LINE:MOV DL,0AHMOV AH,2INT 21H;ERROR INPUT, CHOOSE AGAIN.JMP FIRSTFUNCTION1:MOV DL,0AHMOV AH,2INT 21HCALL F1JMP CHANGE_LINEFUNCTION2:MOV DL,0AHMOV AH,2INT 21HCALL F2JMP CHANGE_LINEFUNCTION3:MOV DL,0AHMOV AH,2INT 21HCALL F3JMP CHANGE_LINEFUNCTION4:MOV DL,0AHMOV AH,2INT 21HCALL F4JMP CHANGE_LINEEXIT:MOV AH,4CHINT 21HRETMAIN ENDP;SUBPROCESS 1F1 PROC NEAR;GET STRINGMOV SI,OFFSET BUFFMOV DX,SIMOV AH,0AHINT 21HCALL CHANGE_LINE;GET THE SIZE OF STRINGINC SIMOV CL,[SI]MOV CH,0INC SI;CHANGE THE LETTERS AND PRINT CHANGE:MOV DL,[SI]CMP DL,'Z'JBE NEXTSUB DL,20HNEXT:MOV AH,2INT 21HINC SILOOP CHANGECALL CHANGE_LINE;RETURNRETF1 ENDP;SUBPROCESS 2F2 PROC NEAR;GET STRINGMOV DX,SIMOV AH,0AHINT 21HCALL CHANGE_LINE ;GET THE SIZE OF STRING INC SIMOV CL,[SI]MOV CH,0INC SI;GET THE MAX CHARMOV AL,[SI]INC SI COMPARE:CMP AL,[SI]JA NEXTMOV AL,[SI] NEXT:INC SILOOP COMPAREPRINT:MOV DL,ALMOV AH,2INT 21HCALL CHANGE_LINE;RETURNRETF2 ENDP;SUBPROCESS 3F3 PROC NEAR;GET STRINGMOV SI,OFFSET BUFFADD SI,2MOV DX,SIMOV AH,0AHINT 21HCALL CHANGE_LINE ;GET THE SIZE OF STRING INC SIMOV CL,[SI]MOV CH,0INC SIMOV DX,SIDEC CX;BUBBLE SORTLOOP1:MOV BX,CXLOOP2:MOV AL,[SI]CMP AL,[SI+1]JA NEXTXCHG AL,[SI+1]MOV [SI],AL NEXT:INC SIDEC BXJNE LOOP2MOV SI,DXLOOP LOOP1;PRINTMOV CL,[SI-1]MOV CH,0 PRINT:MOV DL,[SI]MOV AH,2INT 21HINC SILOOP PRINTCALL CHANGE_LINE;RETURNRETF3 ENDP;SUBPROCESS 4F4 PROC NEAR;INPUT THE TIME INPUT:MOV DX,SIMOV BL,10;HOURMOV AH,0AHINT 21TCMP BYTE PTR[SI+1],2JNE INPUTSUB BYTE PTR[SI+2],30HSUB BYTE PTR[SI+3],30HMOV AL,[SI+2]MUL BLADD AL,[SI+3]MOV CH,ALCALL CHANGE_LINE;MINUTEMOV AH,0AHINT 21TCMP BYTE PTR[SI+1],2JNE INPUTSUB BYTE PTR[SI+2],30HSUB BYTE PTR[SI+3],30HMOV AL,[SI+2]MUL BLADD AL,[SI+3]MOV CL,ALCALL CHANGE_LINE;SECONDMOV AH,0AHINT 21TCMP BYTE PTR[SI+1],2JNE INPUTSUB BYTE PTR[SI+2],30HSUB BYTE PTR[SI+3],30HMOV AL,[SI+2]MUL BLADD AL,[SI+3]MOV DH,ALCALL CHANGE_LINE;1/100 SECONDMOV DL,0;SET THE TIMEMOV AH,2DHINT 21H;CHECKCMP AL,00JNE INPUT;GET THE TIMEMOV SI,OFFSET BUFFADD SI,2GET:MOV AH,2CHINT 21HMOV [SI],CHMOV [SI+2],CLMOV [SI+4],DH;BINARY TO ASCIIMOV BL,10;HOURMOV AH,0MOV AL,[SI]DIV BLADD AH,30HADD AL,30HMOV [SI],ALMOV [SI+1],AH;MINUTEMOV AH,0MOV AL,[SI+2]DIV BLADD AH,30HADD AL,30HMOV [SI+2],ALMOV [SI+3],AH;SECONDMOV AH,0MOV AL,[SI+4]DIV BLADD AH,30HADD AL,30HMOV [SI+4],ALMOV [SI+5],AH ;PRINT THE TIME ;HOURMOV DL,[SI]MOV AH,2INT 21HMOV DL,[SI+1]MOV AH,2INT 21HMOV DL,':';MINUTEMOV DL,[SI+2]MOV AH,2INT 21HMOV DL,[SI+3]MOV AH,2INT 21HMOV DL,':';SECONDMOV DL,[SI+4]MOV AH,2INT 21HMOV DL,[SI+5]MOV AH,2INT 21H;CHECK THE INPUTMOV AH,0BHINT 21HCMP AL,0FFHJE GET;RESET OR EXITMOV AH,1INT 21HCMP AL,1BHJE EXITJMP INPUT;RETURNEXIT:RETF4 ENDP;CHANGE LINECHANGE_LINE PROC NEAR PUSH AXPUSH DXMOV DL,0DHMOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HPOP DXPOP AXRETCHANGE_LINE ENDPCODE ENDSEND START实验心得1、对于汇编程序,书上的内容有限,更多的内容需要自己上网查找甚至自己发现。

相关文档
最新文档