微机原理实验讲义
- 格式:doc
- 大小:484.50 KB
- 文档页数:28
目录第一章汇编语言程序的基本结构 (1)第二章汇编语言程序的建立和执行 (6)第三章汇编语言程序上机实验 (10)实验一两个多位十进制相加的实验 (10)实验二两个数相乘的实验 (11)实验三统计男女生人数实验 (13)实验四统计学生成绩实验 (14)实验五数据块移动与字符串搜索程序实验 (17)实验六将ASCII码转换为二进制数 (17)实验七将二进制数转换为ASCII码 (19)实验八字符和数据的显示程序 (20)实验九将键盘输入的大小写字母相互进行转换 (22)实验十求2X的实验 (24)实验十一实现分段函数的运算 (25)实验十二排序实验 (25)实验十三读文件的实验 (26)实验十四写文件的实验 (29)实验十五显示目录的实验 (30)第四章微机原理硬件部分 (32)实验一 8255A并行口实验(一)LED显示 (32)实验二 8255A并行口实验(二)PA输入,PB输出 (33)实验三 8255A并行口实验(三)控制交通灯 (34)实验四 A/D转换实验 (35)实验五 D/A转换实验(一)方波 (36)实验六 D/A转换实验(二)锯齿波 (37)实验七 8259单级中断控制器实验 (38)实验八定时/计数器8253方波 (39)实验九 8251串口实验(一)自发自收 (41)实验十8251串口实验(二)8251发送26个字母 (43)实验十一继电器控制 (44)实验十二步进电机控制 (44)实验十三小直流电机调速实验 (45)第一章汇编语言程序的基本结构汇编语言程序设计是学习微机原理课程的一个重要内容,只有通过设计一定的实验程序,并在一定的工具下完成程序的调试,才能充分理解计算机的指令系统和其工作原理。
一个完整的汇编语言源程序至少由指令语句部分和伪指令语句部分两部分语句组成。
每一条指令语句在汇编时产生一个目标代码,对应着一条机器指令;而伪指令则是为汇编程序提供编译信息及为连接程序提供链接信息。
微机原理实验讲义程曙艳编厦门大学自动化系2016年10月汇编语言的上机过程1、建立汇编语言的工作环境至少有以下程序文件:编辑程序,文件名,使用编辑程序代码生成*.asm。
汇编程序,文件名MASM.EXE,使用masm.exe对*.asm文件进行汇编,生成*.obj 文件连接程序,文件名LINK.EXE,使用link.exe对目标文件*.obj进行连接生成*.exe 文件调试程序,文件名DEBUG.EXE,使用debug.exe对可执行文件*.exe进行调试运行(1)编辑可以用记事本或DOS下的EDIT编辑器来编写源程序。
但程序保存时文件必须取名为*.asm 。
或EDIT 文件名.asm 打开已经存在的文件。
(2)汇编在DOS状态执行masm 文件名,则屏幕显示与操作如下:(3)连接汇编后产生的目标文件必须经过连接,才能成为可执行文件.exe。
在DOS 状态执行link 文件名,则屏幕显示与操作如下:(4)运行、调试>DEBUG 文件名.exeDebug运行后,出现状态提示符短划线-常用debug命令:D,显示内存单元内容R,显示与修改寄存器内容T、P,单步执行命令G,连续执行指令U,反汇编Q,退出DEBUG程序2. 汇编语言程序格式汇编语言由若干个段组成:堆栈段(保存数据、断点等信息)代码段(存放指令)必需数据段(定义数据,分配存储单元)附加段(定义数据,分配存储单元)每段必须有且仅有一个名字,以SEGMENT定义段的起始,以ENDS定义段的结束,整个程序结束后需以END收尾STACK SEGMENT......STACK ENDSDATA SEGMENT......DATA ENDSESEG SEGMENT......ESEG ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATA,SS:STACK,ES:ESEGSTART:mov ax, datamov ds, axmov ax, esegmov es, axmov ax, stackmov ss, ax……….CODE ENDSEND START3. 程序例题:STACKS SEGMENT STACK ;堆栈段DW 128 DUP(?)STACKS ENDSDATAS SEGMENT ;数据段;请在这里定义您的数据STRING DB 13,10,'Hello World!',13,10,'$'DATAS ENDSCODES SEGMENT ;代码段ASSUME CS: CODES, DS: DATAS START: MOV AX,DATAS ;初始化MOV DS, AX;请在这里添加您的代码LEA DX, STRING ;显示字符串MOV AH, 9INT 21HMOV AH,01 ;等待键盘输入INT 21HMOV AX,4C00H ;退出程序INT 21HCODES ENDSEND START软件实验部分实验一二进制加、减法编程实验一、实验要求和目的1.熟悉汇编语言二进制多字节加法基本指令的使用方法;2.熟悉汇编语言二进制多字节减法基本指令的使用方法;3.掌握汇编语言编程的一般结构。
微机原理与接口实验目录实验一内存清零--------------------------------------------2 实验二小直流电机调速实验------------------------------------3 实验三步进电机控制----------------------------------------7 实验四继电器控制------------------------------------------16实验一内存清零一、实验目的1、掌握内存读写方法。
2、了解内存的块操作方法。
二、实验内容对指定内存起址和长度的块,要求将其内容清零。
三、实验步骤联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开文件夹,点击XX.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
⑵按复位键RST,查看内存4000H~4FFFH单元内容应为00脱机模式:1、在P.态下,按SCAL键,输入2DC0,按EXEC键。
2、按复位键RST,查看内存4000H~4FFFH单元内容应为00五、实验程序清单CODE SEGMENT ;S5.ASM,CLRASSUME CS:CODEORG 2DC0H ;this is a program of clear "0"START: MOV AL,00H ;CLEAR RAM:4000--4FFFHMOV BX,4000H ;内存首址CON1: MOV [BX],AL ;清零INC BX ;内存加一CMP BX,5000H ;比较末址JNE CON1 ;不等继续JMP $CODE ENDSEND START实验二小直流电机调速实验一、实验目的1、掌握直流电机的驱动原理2、了解直流电机调速的方法二、实验内容1、用0832D/A转换电路的输出经放大后驱动直流电机。
第一部分汇编语言程序设计实验一汇编语言程序设计基础[实验目的]1.学习和掌握汇编语言程序的基本结构和上机过程。
2.学习和掌握顺序程序设计的方法3.学习和掌握汇编语言程序的调试方法。
4.学习EMU8086和MASM FOR WINDOWS软件的使用。
[实验要求]1、上机前要做好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。
2、上机时要遵守实验室的规章制度,爱护实验设备。
要熟悉与试验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序)的使用方法。
在程序的调试过程中,有意识的学习及掌握程序的各种操作命令以便掌握程序的调试方法及技巧。
[实验器材]微型计算机、WINDOWS操作系统、DOS系统、DEBUG程序、MASM 5.0[实验内容]1.编写程序,在屏幕上分行显示自己的姓名、学号和欢迎信息,每个信息显示在不同的行。
2.编写程序,通过键盘输入0——9之间的一个数字,利用查表法计算其平方。
3.在数据段定义x、y、res1、res2、res3、res4,分别计算x和y的和、差、积、商,分别存放在变量res1、res2、res3、res4中,变换不同的x和y的值,进行计算,分析和记录计算结果以及相关标志位的状态。
验证程序是否正确。
4.在数据段定义x、y、res1、res2、res3、res4,分别计算x和y的与、或、非、异或的结果,分别存放在变量res1、res2、res3、res4中,变换不同的x和y的值,进行计算,分析和记录计算结果以及相关标志位的状态。
验证程序是否正确。
5.将字节型变量x和y交换。
[实验步骤]1.编辑源程序。
(注意:保存文件时文件的扩展名必须为.asm,最好将文件保存在自己的文件夹下)。
2.汇编源程序,应用MASM.EXE对源程序进行汇编,生成.obj的目标文件和.lst的列表文件,通过列表文件查看并记录其中一个程序的目标代码。
3.连接目标程序,应用LINK.EXE对目标模块进行连接,生成 .EXE的可执行文件,执行可执行文件,验证程序功能。
第一部分的软件实验,开机启动选WIN7系统,在windows命令框里输入“cmd”进DOS, 在DOS里输入相关命令进入D盘或E盘拷进实验软件的目录,运行TD以及后面汇编、连接、运行汇编程序,都在这个目录下进行。
第二部分的接口实验,开机启动选DoS系统,就直接进入DOS 了,之后还是输入相关命令进入D盘或E 盘拷进实验软件的目录,运行TD或汇编、连接、运行汇编程序实验箱用的中断号和端口地址,运行PoRTR程序,就可以看到。
接口实验,开机启动选DOS系统,就直接进入DC)S 了,之后还是输入相关命令进入D盘或E盘拷进实验软件的目录,运行TD或汇编、连接、运行汇编程序。
硬件实验三:实验箱用的中断号和端口地址,运行PoRTR程序,就可以看到。
3、参考程序1:(程序名:E8253_1.ASM)“
iββQ1l sou 0d400h-0280h ;0d400h为实验箱的接口地址,应改为运行PoRTR程序自动获取的那个接口地址. io8253_ctrl eαu ioport+283h.' io8253_cnt0 WaU ioport+280h^∙ code segments
这个端口号,在dos环境下利用PORT命令可以获取1/0端口地址
芯片:实验三使用的是硬件板上的8254计数器
接线图为:。
微机原理第1次课讲义第1次课:绪论内容:微机发展概况、数和字符的表示、计算机系统概论重点:数和字符的表示难点:补码及运算规则、浮点数表示作业:、、第1章绪论微型计算机发展概况? 电子计算机发展历史简介;? 微型计算机发展历史。
? 微处理器MPU,也叫中央处理器或中央处理单元CPU。
微型计算机各代的划分通常是以其微处理器字长、位数和功能为主要依据。
? 第一代是4位和低档8位微机。
? 第二代是中高档8位微机。
? 第三代是I6位微机。
? 第四代是32位微型计算机的大发展时期。
? 第五代是64位微机发展时期。
? 光学技术、超导技术、仿生技术的相互结合,必然产生一种全新的计算机,而人工智能的研究正在促进计算机面临一场新的革命。
人工智能计算机,人工神经网络计算机计算机中数和字符的表示无符号数表示无符号数,机器字长的所有位都参与表示数值。
若计算机的字长为n位,则n位无符号数可表示的数X的范围是0≤X≤2 n-1 当n=8时,可表示的无符号数的范围为0~255,当n=16时,可表示的无符号数的范围为0~65535。
在计算机中最常用的无符号整数是表示地址的数。
此外,如双精度数的低位字也是无符号整数等。
有符号数的表示方法1.机器数与真值数的最高位为符号位,为0表示正数,为1表示负数。
例如字长为8位的计算机,则D7为符号位,D6~D0为数值位,如下所示。
这种符号数码化的数称为机器数。
机器数所代表的实际数值称为真值。
机器数可以用不同的码制来表示,常用的有原码和补码表示法。
2.原码表示法最高位为符号位,正数的符号位用0表示,负数的符号位用1表示,其余各位为数值位,这种表示法称为原码表示法。
n位原码可表示的数X 的范围是:n-1n-1-2+1≤X≤+2-1 当n=8时,8位二进制原码所能表示的数值范围为-127~+127。
3.补码表示法补码表示法中,正数的补码和原码相同,负数的补码可其原码除符号位保持不变外,其余各位按位取反,再在最末位加1而形成。
ZY-88系列8086/8088微机接口实验系统微机原理与接口技术实验指导书黄山学院信息工程学院2013年3月目录第一章系统概述--------------------------------------------------11.1 系统资源分配----------------------------------------------- 11.2系统组成和结构----------------------------------------------21.3使用指南----------------------------------------------------21.4 8086K实验系统与PC机联机操作--------------------------------4 第二章实验指导--------------------------------------------------51.1验证实验--------------------------------------------------- 5实验一内存清零--------------------------------------------5 实验二数码显示--------------------------------------------6 实验三存贮器读写实验--------------------------------------7 实验四简单I/O口扩展实验----------------------------------7 实验五8259单级中断控制器实验-------------------------------8 实验六定时器 / 计数器---------------------------------------11 实验七8255A并行口实验(一)---------------------------------12 实验八串行接口和应用(二)串行接收---------------------------13 实验九 A/D转换实验-----------------------------------------14 实验十D/A转换实验(一)-------------------------------------151.2设计实验-------------------------------------------------- 18模拟交通灯管理----------------------------------------------- 18第一章系统概述1.1 系统资源分配8088有1兆存储空间,系统提供用户使用的空间为00000H-0FFFFH,用于存放、调试实验程序。
实验一显示程序实验1.emu8086介绍Emu8086—Assembler and Microprocessor Emulator是一个可在Windows 环境下运行的8086CPU汇编仿真软件, Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,它优于一般编译器的地方在于提供了一个虚拟的80x86环境,拥有自己一套独立的“硬件”,可以完成一些纯软件编译器无法完成的功能例如Led显示,交通灯,步进电机等等,而且动态调试(DEBUG)时非常方便一.软件启动启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。
注册的用户名随意,密码112,即可成功。
二.新建文件单击图1中的“New”选项,软件会弹出如图2所示的选择界面。
● COM模板——适用于简单且不需分段的程序,所有内容均放在代码段中,程序代码默认从ORG 0100H开始;● EXE模板--适用于需分段的复杂程序,内容按代码段、数据段、堆栈段划分。
需要注意的是采用该模板时,用户不可将代码段人为地设置为ORG 0100H,而应由编译器自动完成空间分配;● BIN模板--二进制文件,适用于所有用户定义结构类型;● BOOT模板—-适用于在软盘中创建文件。
此外,若用户希望打开一个完全空的文档,则可选择empty workspace的选项。
三.编译和加载程序用户可根据上述选择的模板中编写程序,如图3所示。
该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体,其菜单功能如表1所示.编写完程序后,用户只需单击工具栏上的“compile”按钮,即可完成程序的编译工作,并弹出如图4所示的编译状态界面.若有错误则会在窗口中提示,若无错误则还会弹出保存界面,让用户将编译好的文件保存相应的文件夹中。
默认文件夹为…\emu8086\MyBuild\,但您可以通过菜单中assembler/ set output directory对默认文件夹进行修改。
微机原理与接口技术实验讲义(第二版)徐卫华编楚雄师范学院物理与电子科学系目录实验一二进制多位加法运算......................................................................... - 1 - 实验二二进制码转换为BCD码................................................................... - 2 - 实验三8255A并行口实验(一) ................................................................. - 4 - 实验四8255A并行口实验(二) ...................................................................... - 6 - 实验五128×64 LCD液晶显示实验 .......................................................... - 10 - 实验六定时器/ 计数器 ............................................................................. - 20 - 实验七A/D转换实验 .................................................................................. - 22 - 实验八D/A转换实验 .................................................................................. - 26 - 实验九串行接口和应用 .............................................................................. - 29 - 实验十设计性实验——多芯片综合应用 .................................................... - 40 -实验一二进制多位加法运算一、实验目的1、熟悉实验系统键盘显示的使用。
前言微型计算机是电子计算机技术飞速发展的产物,具有体积小、重量轻、耗电少、价格低廉、可靠性高、结构灵活等特点。
微型计算机最早的是美国IBM公司用INTEL公司的8086CPU芯片制造的IBM-PC机,现在已经由低档的8位机8080、8086、8088,发展到16位的80286,32位的80386、80486、PENTUIM、PENTUIM II、PENTUIM III等高档机型。
主机的内存容量也由最初的48K字节增加到640K、2M、…、128M甚至更大。
处理速度也越来越快,工作稳定性显著提高。
当前,微型机技术正往两个方向发展,一个是高性能、多功能的方向,另一个是价格低廉、功能转移的方向。
在不久的将来,微型机将发展成为融工作、学习、娱乐于一体,集电脑、电视、电话于一身的综合办公设备和新型家用电器,以及信息高速公路上的数字化、多媒体智能终端。
未来的微机在我们工作学习和日常生活中将会充当重要角色,它不仅会改变我们的生活方式,而且会改变我们的文化特征,会出现我们今天无法想象的事物,微机必将成为人类文明之侣。
通过本课程掌握微机关键技术的原理和实现方法,使用户深入理解、牢固掌握、灵活运用微型机最主要的技术,从而能够在日新月异的计算机领域更快地理解、熟悉、掌握新的发展。
在软件方面,本教学软件以介绍8086指令系统为基础,重点讨论 Intel公司的ASM-86汇编语言程序设计;而在硬件方面则着重讨论8086的体系结构、接口技术、 Intel公司的I/O配套支持器件及其应用,为用户开发应用8086系列微型计算机(包括IBM-PC机)打下必要的基础。
第一章绪论本章介绍计算机基础知识,内容包括计算机的发展、特点、分类及应用;计算机中常用的数制以及不同数制间的相互转换;数据的编码;二进制数的算术运算和逻辑运算;数据的存贮组织等。
其中涉及到不少名词、术语及其相关概念,必须弄懂和掌握,为我们以后学习作好必要的知识准备。
世界上第一台计算机,是1946年2月由美国宾夕法尼亚大学研制成功的。
实验一熟悉汇编语言环境及建立汇编的过程一、实验目的1.熟悉汇编语言环境。
2.掌握汇编语言的上机过程。
3.了解汇编语言程序的编程格式。
二、实验要求通过一个小程序的编写达到以上的实验目的。
三、实验原理1.汇编语言程序的上机过程用汇编语言编写的程序称为源程序,源程序也不能由机器直接执行,而必须翻译成机器代码组成的目标程序,这个翻译过程称为汇编。
在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的,用来把汇编语言编写的程序自动翻译成目标的软件叫汇编程序,汇编过程如下:四、实验步骤1、打开编辑环境2、输入程序CODE SEGMENTASSUME CS:CODESTART: MOV AL,01HMOV BL,40HADD AL,BLMOV DL,ALMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START3、保存源程序,以.ASM为扩展名。
C:\MASM\1.ASM4、建立汇编过程(1)用宏汇编程序汇编源程序C:\MASM>MASM 1.ASM汇编程序有3个输出文件【.obj】文件,【.LST】文件,【.CRF】文件,.OBJ文件是我们所需要的文件。
汇编程序还有另外一个重要功能:可以给出源程序中的错误信息。
(2)用连接程序将OBJ文件转换为可执行的EXE文件C:\MASM>LINK 1.OBJ5、执行程序:C:\MASM>1.EXE实验二两个多位十进制数相加的实验一、实验目的:1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程。
二、实验内容:将两个多位十进制数相加。
要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图四、实验原理1.ADC 带进位相加指令的功能和指令格式2.AAA 、DAA、 AAS、 DAS指令的功能和指令格式3.伪指令SEGMENT 、ENDS、 ASSUME、MACRO、ENDM的使用4.子程序的定义(PROC NEAR/FAR ENDP),以及子程序调用和返回指令:CALL、RET的使用5.循环指令LOOP的格式以及退出循环的条件6.中断指令的使用五、实验参考程序CRLF MACRO ;建立回车换行宏MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDM ;宏定义结束DATA SEGMENT ;数据段DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)DATA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET DATA2MOV BX,05CALL DISPL ;显示被加数CRLFMOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示加数CRLFMOV DI,OFFSET DATA2CALL ADDA ;加法运算MOV SI,OFFSET DATA1MOV BX,05CALL DISPL ;显示结果CRLFMOV AX,4C00HINT 21HDISPL PROC NEAR ;显示子程序段DS1: MOV AH,02HMOV DL,[SI+BX-1] ;显示字符串中的一个字符INT 21HDEC BX ;修改偏移量JNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05AD1: SUB BYTE PTR[SI+BX-1],30H ;将ASCII码表示的数字串SUB BYTE PTR[DI+BX-1],30H ;转化位十六进制的字符串 DEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05 ;包括进位位共5位CLC ;清进位位AD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BL ;带进位相加AAA ;非组合BCD码的加法调整 MOV [SI],AL ;结果送加数区INC SIINC DI ;指向下一位LOOP AD2 ;循环MOV SI,DXMOV DI,BPMOV BX,05AD3: ADD BYTE PTR[SI+BX-1],30H ; 十六进制的数字串转化 ADD BYTE PTR[DI+BX-1],30H ; 为ASCII码表示的数字串 DEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START六、实验步骤1.按实验要求编写程序2.汇编连接程序生成可执行文件3. 执行程序观察结果七、拓展练习编写程序完成两个多位十进制数相减。
微机原理与接口技术实验讲义实验一汇编程序的调试与Debug应用一、实验目的(1)掌握汇编语言的编程结构与方法。
(2)理解汇编语言的运行机制。
(3)掌握Debug调试语句及调试技巧。
二、预习要求复习汇编程序语言,提前将本实验相关内容进行预习。
三、实验设备带有MASM汇编工具的PC机一台。
四、实验原理程序的编写、编译的一般过程(1)汇编语言支持任意字处理软件,可以选用现有的文本编辑软件,例如EDIT,记事本等,进行源程序的编写,编写完毕之后,需将文件保存为*.asm文件(源文件)。
(2)利用MASM软件对所编写的*.asm文件进行汇编,生成*.obj文件(目标文件),以及调试用*.LST(列表文件)和*.crf(交叉引用表)(3)利用Link命令对程序进行连接,将目标文件与库文件进行连接,最终生成*.exe 文件(可执行文件)。
若上述几步无问题,则最终生成可直接运行的*.exe文件,若过程中出现语法错误,请按照提示将所有语法错误进行改正,若汇编过程通过,但运行结果不正确,则表明出现语义错误,此时,需利用调试软件,例如Debug进行调试,查找出现语义错误的语句进行修改,需反复进行调试,直至程序运行正确。
例:使用MASM50 汇编程序进行汇编,输入命令行masm 或者masm *.asm 后根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst 和*.crf。
*.obj-目标文件,用于连接生成可执行文件;*.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于调试;*.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。
汇编连接命令行:link [*.obj] [*.obj] [*.lib] ↙连接程序,将多个目标程序及库文件,连接生成可执行的*.exe 文件,同时可选择生成*.map 文件。
*.map-地址映像文件,给出内存地址分配的有关信息。
微机原理综合设计实验讲义傅中君1实验性质该实验的性质是学生学完电子线路、数字逻辑、计算机组成与结构、计算机程序设计、微机原理与汇编语言等课程后进行的一次较完整的培养学生计算机面向硬件程序设计能力的综合性、设计性实验。
该实验将通过“课内学时+课外学时”方式进行。
2 实验目的该实验对学生全面理解教学内容,尝试设计比较完整的、实用性的汇编应用程序,以及培养面向硬件的编程能力起着重要的作用。
通过该项实验,主要达到以下目的:⏹1、使学生增进对计算机工作方式和过程的感性认识,加深对计算机系统硬件编程的理解。
⏹2、使学生掌握计算机系统面向硬件程序设计的基本方法,掌握汇编语言程序设计和调试的基本技术,包括汇编、调试等。
⏹3、使学生了解和掌握计算机系统的软硬件结合程序设计过程、方法及实现,为以后学习和工作打下良好基础。
3 实验要求使学生在一定的课时内完成一个比较完整,有一定实用价值的汇编应用程序的设计和调试。
实验内容应涵盖一下方面:⏹顺序、分支、循环等程序设计;⏹子程序设计;⏹BIOS、DOS功能调用;⏹运用软件结构体系的知识规划程序结构。
4 实验安排微机原理综合设计实验按照综合性设计性实验的要求来安排,包含35个实验课题,2人1组共同完成实验课题。
每个实验课题涵盖了本课程大纲要求培养的能力和技能,最后完成一份综合设计报告。
5 综合设计报告要求实验报告按照毕业论文要求书写,包含摘要、设计任务与要求、软件总体结构及基本算法、概要设计和数据结构、软件的编写及调试、测试数据及调试中Bug分析、收获和体会、参考文献等部分。
要求学生重点讲述清楚故障分析和收获体会。
6 成绩评定⏹形成性考核⏹1、上交选题报告⏹2、上交系统概要设计⏹3、上交系统详细设计⏹4、上交完成的作品和相应的设计文档⏹5、上交课程设计总结报告⏹作品综合考评⏹设计作品综合考评由专任教师根据作品的完整性、实用性、可靠性、创造性、技术先进性等要素给出“优、良、中、合格、差”等五个级别。
微机原理及接口技术实验指导书第一章80X86微机原理及其程序设计实验一熟悉PC 机的使用和调试汇编程序的方法一. 实验目的:1. 掌握汇编程序由编辑、编译、链接到调试的全过程。
2. 通过汇编调试工具加深对机器指令执行过程的了解。
二. 实验要求:1.了解PC 机的系统类型和基本配置, 熟悉PC 机DOS和WINDOWS下的基本操作2.掌握使用UltraEdit 等编辑器对汇编语言源程序(存储后扩展名为.ASM ) 的编辑操作。
3.学会用宏汇编程序MASM (或TASM ) 对.ASM文件进行编译(编译后扩展名为.obj)。
4.使用链接程序LINK (或TLINK ) 对 .OBJ 文件链接生成 .EXE 文件。
5. 学会用汇编调试工具软件TD (或DEBUG ) 对.EXE文件进行调试进一步深对机器指令的了解、执行程序、检查运行结果的方法。
三. 实验仪器:PC 机一台四. 实验步骤:汇编程序的编程环境有以下三种方式:1. Dos窗口下命令行方式2. UltraEdit方式3. 硬件实验箱自带的集成编程环境Wmd86方式其中第一种Dos方式,是指进入Dos窗口模式编辑源文件,用命令行方式直接调用Tasm,Masm等编译工具进行程序的编译、链接、调试,而后两种工作方式都是在Windows下进行源文件的编辑,而编译和链接仍然是通过调用Tasm,Masm等编译工具完成相应工作。
为了方便我们现在一般采用后两种编程环境。
下面我们分别介绍:1.UltraEdit方式UltraEdit是Windows下非常优秀的文本编辑软件,有很好的可配置性,支持语法高亮等。
通过配置UltraEdit,可实现在UltraEdit环境下编辑汇编源程序、汇编、连接、调用TDebug调试,非常方便。
配置完成后,可实现快捷键调用各编译、连接、调试功能。
实验机器上已经预配置好了。
配置方法说明(带演示动画)。
使用说明:1.打开UltraEdit,编辑并保存汇编源文件。
微机原理实验讲义程曙艳编厦门大学自动化系2016年10月汇编语言的上机过程1、建立汇编语言的工作环境至少有以下程序文件:编辑程序,文件名,使用编辑程序代码生成*.asm。
汇编程序,文件名MASM.EXE,使用masm.exe对*.asm文件进行汇编,生成*.obj 文件连接程序,文件名LINK.EXE,使用link.exe对目标文件*.obj进行连接生成*.exe 文件调试程序,文件名DEBUG.EXE,使用debug.exe对可执行文件*.exe进行调试运行(1)编辑可以用记事本或DOS下的EDIT编辑器来编写源程序。
但程序保存时文件必须取名为*.asm 。
或EDIT 文件名.asm 打开已经存在的文件。
(2)汇编在DOS状态执行masm 文件名,则屏幕显示与操作如下:(3)连接汇编后产生的目标文件必须经过连接,才能成为可执行文件.exe。
在DOS 状态执行link 文件名,则屏幕显示与操作如下:(4)运行、调试>DEBUG 文件名.exeDebug运行后,出现状态提示符短划线-常用debug命令:D,显示内存单元内容R,显示与修改寄存器内容T、P,单步执行命令G,连续执行指令U,反汇编Q,退出DEBUG程序2. 汇编语言程序格式汇编语言由若干个段组成:堆栈段(保存数据、断点等信息)代码段(存放指令)必需数据段(定义数据,分配存储单元)附加段(定义数据,分配存储单元)每段必须有且仅有一个名字,以SEGMENT定义段的起始,以ENDS定义段的结束,整个程序结束后需以END收尾STACK SEGMENT......STACK ENDSDATA SEGMENT......DATA ENDSESEG SEGMENT......ESEG ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATA,SS:STACK,ES:ESEGSTART:mov ax, datamov ds, axmov ax, esegmov es, axmov ax, stackmov ss, ax……….CODE ENDSEND START3. 程序例题:STACKS SEGMENT STACK ;堆栈段DW 128 DUP(?)STACKS ENDSDATAS SEGMENT ;数据段;请在这里定义您的数据STRING DB 13,10,'Hello World!',13,10,'$'DATAS ENDSCODES SEGMENT ;代码段ASSUME CS: CODES, DS: DATAS START: MOV AX,DATAS ;初始化MOV DS, AX;请在这里添加您的代码LEA DX, STRING ;显示字符串MOV AH, 9INT 21HMOV AH,01 ;等待键盘输入INT 21HMOV AX,4C00H ;退出程序INT 21HCODES ENDSEND START软件实验部分实验一二进制加、减法编程实验一、实验要求和目的1.熟悉汇编语言二进制多字节加法基本指令的使用方法;2.熟悉汇编语言二进制多字节减法基本指令的使用方法;3.掌握汇编语言编程的一般结构。
二、实验内容(1)编写程序,实现长度为2字的两个数相加。
(2)编写程序,实现一个长度为2字的数和一个长度为1字的数相减。
实验二十进制数的BCD加、减法编程实验一、实验要求和目的1.熟悉BCD码的基本知识2.熟悉汇编语言BCD码多字节加减法基本指令的使用方法;3.掌握BCD码调整指令的使用方法。
二﹑实验内容(1)编写程序,从键盘输入任意2个数,实现两数相加和相减,结果显示在屏幕上实验三二进制乘、除法编程实验一、实验要求和目的1.熟悉数据的补码表示。
2.熟悉无符号数和有符号数乘法和除法指令的使用;3.掌握符号位扩展指令的使用。
二﹑实验内容1)被除数是一个2字长的有符号数,除数是一个1字长的有符号数,求两个数相除的商和余数。
(2)求两个2字长的无符号数相乘的结果,并将结果保存在存储空间中。
实验四ASCII码表示的十进制数、二进制数和BCD的互换编程实验一、实验要求和目的1.了解汇编语言中的十进制、二进制、BCD码的表示形式;2.了解BCD值和ASCII值的区别3.了解如何查表进行数值转换及快速计算。
4.掌握利用汇编语言进行进制转换的方法。
二、实验内容(1)将一个用ASCII码表示的多位十进制转换为二进制,要求十进制不大于65535,且输入数码为无符号数。
(2)将用ASCII码表示的数字串,转化为压缩的BCD码。
三、实验提示(1)十进制数字串转二进制从最高位开始,重复进行“高位*10+低位”的操作,用公式表示为ΣDi×10i=((…(Dn×10+Dn-1)×10)+Dn-2)×10+…+D1)×10+D0 (2)将ASCII码转换为压缩BCD码,将ASCII码的高4位置0,再将十位ASCII 码的低4位左移至高4位,再与个位ASCII码相或。
采用约定寄存器法传递参数。
实验五字符串操作编程实验一、实验要求和目的1.了解汇编语言字符串处理基本流程;2.熟悉汇编语言字符串处理基本指令的使用方法;3.掌握利用汇编语言实现字符串处理的程序设计方法。
二、实验内容(1)编写程序,实现两个字符串比较,如相同,则显示“match”,否则,显示“NO MATCH”(2)编写程序,统计一串字符串中某字符出现的次数。
实验六排序实验一、实验要求和目的1.;掌握用汇编语言编写排序程序的思路和方法2.熟悉汇编语言分支程序基本指令的使用方法;3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。
二、实验内容(1)从键盘任意输入10个数,要求把这些数从小到大排序,并将结果输出在屏幕上。
实验七清屏和设置光标的实验一、实验要求和目的1.掌握用INT 10H的02H功能设置光标的方法2. 掌握用INT 10H 的07H 功能清窗口和设置窗口属性的方法二、实验内容编制一个程序,先清屏,再设置光标,起始位置为第5行第6列,结束行位置为第8行第9列。
实验八大小写字母的转换实验一、实验要求和目的1.了解汇编语言字符串处理基本流程;2.熟悉汇编语言字符串处理基本指令的使用方法;3.掌握小写字母和大写字母在计算机内的表示方法二、实验内容(1)编写程序,接收键盘输入字符(以^-C为结束,即ASCII码的ETX),并将其中的小写字母转换为大写字母并显示实验九响铃及接收日期程序一、实验要求和目的1.掌握响铃的方法2. 掌握年月日输入方法二、实验内容先显示“WHAT IS THE DATA(MM/DD/YY)?”并响铃一次,然后从键盘接收输入的年月日,并显示在屏幕上。
实验十计算N!的实验一、实验目的1.了解数学函数是怎样在汇编语言上实现的2.掌握汇编程序的分支及循环程序的设计方法二、实验内容编写计算N!的程序,数值N由键盘输入,结果在屏幕上输出。
N的范围为0~10。
硬件实验部分实验一I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容实验电路如下图所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/ O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
实验二简单并行输出接口一、实验目的掌握简单并行接口的工作原理及使用方法。
二、实验内容1、按下面图简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。
74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。
2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。
三、编程提示上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:MOV AL,数据MOV DX,2A8HOUT DX,AL通过上述并行接口输入数据需要2条指令:MOV DX,2ADHIN AL,DX实验三简单并行输入接口一、实验目的掌握简单并行接口的工作原理及使用方法。
二、实验内容1、按下面图简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。
74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。
2、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。
三、编程提示1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令:MOV AL,数据MOV DX,2A8HOUT DX,AL通过上述并行接口输入数据需要2条指令:MOV DX,2ADHIN AL,DX实验四中断控制器8259一、实验目的1、了解Windows下中断处理过程2、了解中断控制器工作原理及扩展中断控制器二、实验内容用查询和中断方式分别实现控制指示灯,要求直接用手动产生的单脉冲作为中断请求信号,每按一次单脉冲产生一次中断,PC机显示中断请求信息:中断0(IN0):mess1 db 'Hello! This is interrupt * 0 *!',0dh,0ah,'$'中断1(IN1):mess2 db 'Hello! This is interrupt * 1 *!',0dh,0ah,'$'中断2(IN2):mess3 db 'Hello! This is interrupt * 2 *!',0dh,0ah,'$'中断3(IN3):mess4 db 'Hello! This is interrupt * 3 *!',0dh,0ah,'$'中断4(IN4):mess5 db 'Hello! This is interrupt * 4 *!',0dh,0ah,'$'中断5(IN5):mess6 db 'Hello! This is interrupt * 5 *!',0dh,0ah,'$'中断6(IN6):mess7 db 'Hello! This is interrupt * 6 *!',0dh,0ah,'$'中断7(IN7):mess8 db 'Hello! This is interrupt * 7 *!',0dh,0ah,'$'接线:8259片选接IO地址译码Y68259的INTA接VCC8259的请求(IN0~IN7)分别接单脉冲信号实验五可编程定时器/计数器8254(1)一、实验目的掌握8253的基本工作原理和编程方法。