华工微机实验报告
- 格式:docx
- 大小:73.77 KB
- 文档页数:20
实验报告课程名称微型计算机原理及其应用实验项目分支和循环设计实验学生姓名朱轲信学生学号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 环境,写字板,记事本等中输入源程序。
实验名称 分支与循环程序设计实验 指导教师专业班级 姓名 学号 联系电话一、任务要求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只能读。
实验数据表明,存储器通过地址译码器进行寻址,实现数据的读写。
电子信息与通信学院实验报告实验名称:微机原理实验课程名称:并行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.中断方式实现数码管滚动任意数字用户应用程序的设计包括定时器配置、启动中断系统、设计中断服务程序。
实验五 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篇实验名称:微机原理实验实验日期: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工具对汇编程序进行调试,查找并修正错误。
华工微机实验报告微机系统与接口实验电子与信息学院电类联合班何俊实验二:将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:STACK START: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码表示的十进制数。
微机原理及应用实验报告微机原理及应用实验报告1. 引言微机原理及应用是计算机科学与技术专业的一门重要课程,通过该课程的学习和实验,我们可以深入了解微机的基本原理和应用技术。
本文将对我们进行的微机原理及应用实验进行详细报告,包括实验目的、实验内容、实验步骤、实验结果及分析等。
2. 实验目的本次实验的目的是通过实际操作,加深对微机原理的理解,掌握微机的基本组成和工作原理,以及学习并应用微机的常见应用技术。
3. 实验内容本次实验主要涉及以下内容:- 微机的基本组成和结构- 微机的工作原理- 微机的存储器和输入输出设备- 微机的指令系统和编程技术4. 实验步骤4.1 实验一:微机的基本组成和结构在这个实验中,我们首先学习了微机的基本组成和结构,包括中央处理器、存储器、输入输出设备等。
通过观察实际的微机硬件设备,我们对微机的组成有了更加直观的认识。
4.2 实验二:微机的工作原理在这个实验中,我们学习了微机的工作原理,包括指令的执行过程、中央处理器的工作原理等。
通过实际操作,我们对微机的工作过程有了更加深入的理解。
4.3 实验三:微机的存储器和输入输出设备在这个实验中,我们学习了微机的存储器和输入输出设备的原理和应用。
通过实际操作,我们了解了存储器的读写过程,以及输入输出设备的工作原理。
4.4 实验四:微机的指令系统和编程技术在这个实验中,我们学习了微机的指令系统和编程技术。
通过实际编写和执行简单的汇编语言程序,我们掌握了微机的编程技术,并了解了指令的执行过程。
5. 实验结果及分析通过以上实验,我们对微机的原理和应用有了更加深入的理解。
我们通过实际操作,掌握了微机的基本组成和结构,了解了微机的工作原理,熟悉了微机的存储器和输入输出设备,掌握了微机的指令系统和编程技术。
这些知识和技能对我们今后的学习和工作都具有重要的意义。
6. 总结通过本次微机原理及应用实验,我们深入了解了微机的基本原理和应用技术。
通过实际操作,我们对微机的组成和工作原理有了更加直观和深入的理解,掌握了微机的存储器和输入输出设备的原理和应用,以及微机的指令系统和编程技术。
微机实验报告一、引言微机是一种非常重要的工具,它广泛应用于各个领域。
本篇实验报告将介绍我在微机实验中的实践经历和实验结果,以及我对于微机在未来发展的一些思考。
二、实验目的本次实验的主要目的是掌握微机的基本原理和操作方法,了解计算机的内部构造和各个组成部分之间的工作原理。
三、实验步骤1. 实验前的准备工作在实验开始之前,我们首先需要对微机的硬件和软件进行一些基本设置,包括硬盘分区、安装操作系统以及驱动程序等。
这些准备工作非常重要,它们直接影响到我们后续的实验操作。
2. 实验中的操作练习在实验过程中,我通过对微机的操作练习,逐渐熟悉了操作系统的界面、文件管理、软件的安装和卸载等操作。
同时,我还学习了一些常用的办公软件和计算机网络的基本知识。
3. 实验的数据处理和分析在实验过程中,我将自己收集到的数据进行了处理和分析。
通过对数据的统计和图表制作,我可以更直观地了解数据的规律和变化趋势,进一步加深对实验内容的理解。
四、实验结果在实验进行中,我成功完成了操作系统的安装和配置、网络连接的设置、文件的创建与管理等操作。
同时,我还进一步了解了计算机硬件的构造和各个组件的功能。
五、对微机未来发展的思考在我完成这次微机实验的过程中,我深刻认识到微机在现代社会中的重要性和广泛应用。
随着科技的不断进步,微机的发展也将会愈加迅猛。
我相信未来的微机将更加智能化和高效化,它不仅可以简化人们的工作和生活,还可以推动社会进步和科学研究。
在未来,微机可能会融入更多的领域,如医疗、教育、交通等。
我们可以设想,通过微机的高性能计算和先进的数据处理能力,医生可以更准确地诊断疾病,教师可以创建更具互动性的教学环境,交通系统可以更快速地响应和处理各种情况。
同时,微机的发展也将带来更多的创新和机会,为我们的生活增添更多便利和福祉。
六、总结通过这次微机实验,我不仅学到了实践技能,还对于微机的发展有了更加深入的认识。
微机是人类科技发展的重要成果之一,它对于推动社会进步和个人成长具有不可比拟的作用。
微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。
实验一,微机系统组成及工作原理。
1.1 微机系统的组成。
微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。
其中,CPU是微机系统的核心部件,负责控制整个系统的运行。
1.2 微机系统的工作原理。
微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。
CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。
实验二,微机系统的组装和调试。
2.1 微机系统的组装。
在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。
组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。
2.2 微机系统的调试。
组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。
通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。
实验三,微机系统的应用。
3.1 微机系统的应用领域。
微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。
在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。
3.2 微机系统的发展趋势。
随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。
未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。
结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。
这对我今后的学习和工作将有很大的帮助。
华工微机实验报告2实验目的本实验的目的是通过使用微机系统,掌握在实模式下编程时的基本操作。
实验材料和设备实验所需的材料和设备如下:- PC机一台- DOS操作系统实验原理在实模式下,微机系统可以直接访问物理地址空间,具有较高的性能和灵活性。
本实验主要涉及实模式下的基本操作。
实验步骤本实验主要分为以下几个步骤:步骤一:进入DOS操作系统首先,我们需要开启PC机,并进入DOS操作系统。
操作步骤如下:1. 打开PC机电源。
2. 等待计算机自检完成后,系统会自动进入DOS操作系统。
步骤二:打开编辑器在DOS操作系统下,我们使用编辑器来编写程序。
我们可以使用任何喜欢的编辑器,例如DOS下常用的DEBUG编辑器。
操作步骤如下:1. 在DOS命令提示符下,输入`debug`命令,启动DEBUG编辑器。
2. 在DEBUG编辑器中,我们可以编写汇编语言程序。
步骤三:编写程序根据实验要求,我们需要编写一个简单的汇编语言程序。
程序的具体内容如下:.MODEL SMALL.DATAMESSAGE DB 'Hello, World!', ''.CODEMAIN PROCMOV AH, 9MOV DX, OFFSET MESSAGEINT 21HMOV AH, 4CHINT 21HMAIN ENDPEND MAIN步骤四:汇编与链接程序在编辑器中编写完程序后,我们需要将其汇编成可执行文件。
操作步骤如下:1. 在DEBUG编辑器中,输入`a`命令,将编写的程序汇编成可执行文件。
2. 输入`n`命令,指定程序的名称。
3. 输入`w`命令,将程序保存到磁盘中。
步骤五:运行程序在汇编与链接程序完成后,我们可以运行编写的程序。
操作步骤如下:1. 在DEBUG编辑器中,输入`q`命令,退出DEBUG编辑器。
2. 在DOS命令提示符下,输入编译生成的可执行文件的名称,按下回车键即可运行程序。
实验心得通过本次实验,我深入了解了在实模式下编程时的基本操作。
实验二 数码转码编程及程序调试一、实验目的1.掌握不同进程数及编码相互转换的程序设计方法,加深对数码转换的理解;2.进一步熟悉键盘使用方法;3.进一步熟悉调试程序的方法。
二、实验设备装有汇编软件的IBMPC 机一台 三、实验内容及步骤计算机输入设备输入的信息一般ASCii 码或BCD 码表示的数据或字符,CPU 处理信息一般均用二进制数进行计算或其它处理,处理结果输出的外设一般要求变为ASCII 码,BCD 码或七段显示码等。
因此,在应用软件中各累数制的转换和代码的转换是必不可少的。
将ASCII 码表示的十进制数转换为二进制数,十进制数可表示为: l nl l n n nn D D D D 10*10* (10)*10*60011∑=--=+++L D 代表十进制1,2,3,···9,0;((...(10*0=∑=l nl lD012110*)...10*)10*)10*D D D D D n n l n +++++--由式(2)可归纳十进制数转换为二进制数的方法:从十进制的最高位Dn 开始作乘10加次位的操作,将结果再乘10再加下一个次位,如此重复,则可求出二进制的数结果来。
这里我们规定:被转换的五位ASCII 码十进制数存放在3500h ~3504h 单位中。
而转换结果在3800~3801单位中。
实验步骤(1) 绘制流程图;(2)输入程序并检查无误,编译链接通过。
程序代码:DATA SEGMENTORG 33FEHBUF DB 50 ;缓冲区长度DB ? ;预留用来存放实际长度DB 50 DUP(?) ;接收来自键盘的输入下信息MESG DB 'please input the BCD number you want to tranfer: $'ORG 3700HRES DW ? ;存放16进制数(输出结果)MESG1 DB 0DH,0AH,'the result is:'ARES DB 4 DUP(?), 'H$'DATA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATAMOV DS, AXMOV D X, OFFSET MESGMOV AH, 09H ;屏幕显示提示信息INT 21H ;输出字符串‘please input the BCD number you want to transfer:MOV DX, OFFSET BUFMOV AH, 0AH ;接收键盘输入INT 21H ;接收来自键盘输入的5位BCD码LEA SI, BUFADD SI, 2 ;偏移地址+2 使指针指向BCD码开始的地方MOV DX, 0MOV AX, 0MOV CX, 5 ;LOOP TIMES=5MOV BX, 10L1: MUL BXMOV DL,[SI]SUB DL, 30H ;将输入的BCD码转成十进制数ADD AX, DXINC SILOOP L1LEA SI, RESMOV [SI],AXMOV BX, AXLEA SI,ARESMOV CH,4MOV CL,4OUTPUT: ROL BX,CLMOV AX, BXAND AL, 0FHADD AL, 30HCMP AL, 39HJA ADDIJMP PRINTADDI: ADD AL, 07HPRINT: MOV [SI], ALINC SIDEC CHJNZ OUTPUTMOV DX, OFFSET MESG1MOV AH, 09H ;屏幕显示提示信息INT 21HMOV AH, 4CHINT 21HCODE ENDSEND START编译链接程序:(3)运行程序,输入待转换的五位ASCII码十进制数,得到输出结果;示例:输入 12345 ,则输出3039H。
微机组装实验报告一、实验目的随着计算机技术的不断发展,了解计算机的硬件组成和组装过程对于计算机相关专业的学生以及计算机爱好者来说变得越来越重要。
本次微机组装实验的主要目的是让我们通过实际操作,深入了解计算机硬件的各个组成部分,掌握计算机组装的基本技能和方法,提高我们的动手能力和问题解决能力。
二、实验设备和工具1、计算机硬件组件CPU:Intel Core i5-12400F主板:华硕 PRIME B660MK内存:金士顿 DDR4 3200 16GB硬盘:西部数据 SN570 500GB NVMe M2 固态硬盘+西部数据1TB 机械硬盘显卡:影驰 GeForce GTX 1650 Super电源:航嘉 GS500 400W机箱:先马平头哥 M1散热器:利民 AX120 R SE显示器:AOC 24B1XH键盘、鼠标:罗技 MK1202、工具螺丝刀静电手环三、实验步骤1、准备工作首先,将所有的计算机硬件组件从包装盒中取出,并放置在一个干净、宽敞的工作台上。
佩戴静电手环,以防止静电对计算机硬件造成损害。
2、安装 CPU打开主板上的 CPU 插座盖子,注意观察插座上的缺口和 CPU 上的金三角标识,确保方向正确。
轻轻将 CPU 放入插座中,注意不要用力按压,确保 CPU 的引脚与插座完全对齐。
合上 CPU 插座盖子,并将固定杆扣紧。
3、安装 CPU 散热器在 CPU 表面均匀涂抹一层散热硅脂。
将散热器的底座对准主板上的安装孔位,使用螺丝将散热器固定在主板上。
将散热器的风扇电源线连接到主板上的 CPU_FAN 接口。
4、安装内存观察主板上的内存插槽,找到与内存金手指缺口对应的插槽位置。
将内存的金手指对准插槽,以 45 度角插入插槽,然后轻轻按下内存,直到两侧的卡扣自动扣紧。
5、安装硬盘将 M2 固态硬盘插入主板上的 M2 插槽,并用螺丝固定。
将机械硬盘安装在机箱的硬盘位上,使用螺丝固定,并连接好SATA 数据线和电源线。
实验指导书《微机原理与应用》课程学院:学号:专业(方向)年级:学生姓名:《微机原理及应用》课程组编2010年 9 月 1 日实验三:传送类指令编程(验证性、2学时)一、实验目的:掌握数据传送类指令二、实验方法:上机操作三、实验仪器: PC机四、实验步骤:在WAVE6000软件中编程、调试注:以下程序框架适用于所有的子程序调试。
在WAVE6000软件中编程、调试输入以下程序框架,再按要求编写子程序,调试运行通过。
;============================Org 0000HAjmp Main ;――――――――――――――――――――――――――――;子程序写在此:;――――――――――――――――――――――――――――;主程序:Main: Mov Sp,#07H;以下准备调用子程序的输入参数:例如(R0):=XX,(A):=XX;以下调用子程序:例如acall 子程序名或Lcall 子程序名Sjmp $ ;程序在此原地跳转;============================调试的程序题目如下:1.将30H单元内容与31H单元内容交换。
org 0000HAJMP MAINORG 0030HMAIN:MOV A,30H ;先把(30h)的单元送给AXCH A,31H ;交换两个的值,(31h)=(30H)MOV 30H,A ;交换后(30h)=(31)SJMP $END2.将数35H送往片外RAM 1234H单元。
ORG 0000HAJMP MAINMAIN:MOV A,#35H ;把数35H给AMOV DPTR,#1234HMOVX @DPTR,A ;将数35h送到外部以dptr内容作为地址的单元中 SJMP $END片内和片外的传送只能用 MOVX 指令MOVX A,@DPTRMOVX @DPTR,AMOVX A,@RiMOVX @Ri,A3.将20H单元的位送给B的最高位。
微机原理实验报告
一、实验目的
本次实验的主要目的是了解微机原理、学习微机的基础知识、技能和操作方法,还有熟悉微机实验室的使用方法。
二、实验过程
在实验室中,我们首先进行了掌握微处理器的基本指令集和编程技巧的实验。
通过对微处理器的学习,我们了解到了微处理器的组成结构和工作原理,同时也了解了微处理器的基础指令集,包括数据的传送、算术、逻辑、分支、循环指令等等。
接着我们进行了CPU总线实验。
通过对CPU总线的学习,我们了解了CPU读写内部和外部存储器的方法和原理。
同时,我们学习了编写程序来控制CPU读写存储器等。
最后,我们进行了8255并行接口控制实验。
通过学习并实践8255并行接口控制实验,我们了解了接口及其编程。
三、实验结果
在实验中,我们成功地掌握了微处理器的基本指令集和编程技巧,了解了微处理器的组成结构和工作原理,同时掌握了CPU总
线实验和8255并行接口控制实验。
在实验中不仅增长了专业知识,而且也培养了我们的实验能力,并进一步增强了我们的实践能力。
四、实验心得
通过这次实验,我们意识到,要想成为一名优秀的计算机专业
人才,必须首先打牢微机原理的基础,通过大量的实践和实验,
来应用理论知识,深入了解计算机底层的数据处理方式以及处理
器和存储器的工作原理。
只有这样才能够在日后工作中运用自如,并且在以后的学习和研究中更具备竞争力。
在以后的学习中,我将持续学习和实践,不断探索和发现,提
升自身的能力,为未来的发展做好充分的准备。
微机系统与接口实验电子与信息学院电类联合班何俊实验二:将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、对于汇编程序,书上的内容有限,更多的内容需要自己上网查找甚至自己发现。