微机原理与接口实验报告1
微机原理实验报告(1)

微机原理与接口技术实验报告学院:计算机科学与工程学院专业:计算机科学与技术班级:计算机四班学号:姓名:指导老师:宋芳2011年12月1日调试程序DEBUG的使用练习一、实验目的:1.学习DEBUG常用命令的使用2.熟悉8086的寄存器3.了解程序运行的过程二、实验内容:分别用DEBUG程序的命令实现对PC机RAM单元、CPU寄存器等的内容修改及简单程序的跟踪运行;三、具体实验过程Debug的R命令查看、改变CPU寄存器的内容Debug的D命令查看内存中的内容Debug的E命令改写内存中的内容Debug的U命令将内存中的机器指令翻译成汇编指令Debug的T命令执行一条机器指令当指令是修改段寄存器SS时,修改SP的指令也一下执行了。
也可以跳到指定代码段执行:-t=0B39:0106Debug的A命令以汇编指令的格式在内存中写入一条机器指令用G是断点执行,用-g=100 106 10D,默认为段地址是CS。
2、在debug中,遇到loop循环指令时,可以用p跳过;实验十八写文件实验一.实验要求编写程序,将内存区域中用DEBUG程序设置好的一连串数据,以ASCII码1AH为结束符作为一个文件,存入磁盘,文件名为DATA.AAA.二.实验目的掌握写文件的DOS功能调用方法。
三.实验说明1.对于文件的读写操作,DOS提供了两种手段,第一种手段使用FCB进行存取,第二种手段是文件代号法进行存取。
文件代号法支持目寻路径,并且对错误采用了更统一的办法处理,是DOS推荐的存取方法。
2.使用文件代号法,要求文件名(含路径)用ASCII串表示,所谓ASCII串,就是以空字符00H结尾的一串ASCII字符。
3.文件代号法存取时出现错误,则功能调用返回时,要将CF标志位置1,同时在AX寄存器中返回统一的出错代码。
程序中要用JC指令进行错误判定,确认出错后再将错误代码显示出来,以便分析出错原因。
四.实验代码DATA SEGMENTBUFFER DB 'my name is tang zhi quan,my number is 0905010215' COUNT EQU $-BUFFER ;the count of ASCII for bufferDA DB 'please enter the file absolute path and file name:$' ADDRESS DB 40,?,40 DUP (?)BUILD_FAIT DB OFFSET AX3,OFFSET AX4,OFFSET AX5AX3 DB 'path cannot find$'AX4 DB 'open file too much$'AX5 DB 'access method is wrong$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,DA ;Prompt for the file absolute pathMOV AH,9INT 21HLEA DX,ADDRESS ;set file pathMOV AH,0AHINT 21HMOV AH,2 ;put crlfMOV DL,0AHINT 21HMOV DL,0DHINT 21HMOV AL,ADDRESS+1 ;the number of path to SI MOV AH,0MOV SI,AXMOV DX,OFFSET ADDRESS+2 ;the first address for file path MOV BX,DXMOV BYTE PTR [BX+SI],'$' ;the end add 'S' to mark the end MOV CX,00H ;file propertyMOV AH,3CH ;create a file,the absolute path is "ADDRESS" INT 21HJNC NEXT ;sign create file succesWRONG_SHOW: MOV BX,OFFSET BUILD_FAIT;show the reason for file establish SUB AX,3 ;fail code of ax is 3,4,5ADD BX,AX ;ds:dx is the wrong information's first address MOV DL,[BX]MOV DH,0MOV AH,9INT 21HNEXT: MOV BX,AX ;ax is the number of file handlesMOV CX,COUNT ;the number of bufferLEA DX,BUFFER ;ds:dx point the first address of buffer MOV AH,40HINT 21HINT 21H ;endMOV AX,4C00HINT 21HCODE ENDSEND STAR开始初始化用int 21H的9号调用显示提示输入文件的绝对路径用int21H的0AH号调用输入并回显在屏幕上,并存入变量ADDRESS中,在后面加入'$'结束符输出换行回车用int21H的3CH号调用创建文件DATA.AAA,属性为默认读写CF=1YN创建文件失败,显示错误信息用int21H中的40H调用将buffer中的数据写入文件用int21H的3EH调用关闭文件结束实验三 8255输出实验一.实验要求编写程序,一8255作为输出口,控制8个单色LED灯。
微机原理与接口技术软件实验报告

第一篇软件实验实验一存储器块操作实验一、实验目的1. 熟悉KEIL集成调试环境和汇编程序的调试方法。
2. 掌握存储器读写方法;3. 了解内存块的移动方法;二、实验说明实验1 指定某存储器的其实地址和长度,要求能将其内容赋值。
通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。
块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。
例程2给出起始地址,用地址加1方法移动块,将指定源地址和长度的存储块移到指定目标为起始地址的单元中去。
移动3000H起始的256个字节到4000H起始的256个字节。
三、实验内容1. 试编程将片内RAM中的数据依次复制到片外RAM。
假设源数据区的首地址为40H,目的数据区的首地址为1000H,数据块长度为10H。
流程图:程序:运行结果:Memory显示,片内RAM中40H开始数据为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明测试数据已经成功输入片内RAM。
从片外RAM中1000H位置开始记录为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明片内RAM从40H开始的数据已经成功复制到片外从1000H开始的地址。
2. 两个16位无符号二进制数分别存放在片外RAM首址为2000H和2002H单元内,将它们相加,结果存入RAM 30H(低8位)、31H(高8位)。
程序(以0506H+CDEFH为例):0506H和CDEFH已存入片外单元,运算结果D2F5已存入30H和31H中。
四、思考题1. 如何将存储块的内容置成某固定值(例全填充为0FFH)?请用户修改程序,完成此操作。
答:将源程序中的MOV A, #01H 改为MOV A,#0FFH即可。
2. 若源块地址和目标地址有重叠,该如何避免?答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。
微机原理与接口技术实验报告一

微机原理与接口技术实验报告(一)实验内容一:1、实验目的: 考察对内存寻址方式、8086指令的理解内存中的数据排列如上表所示,各寄存器内容如下DS=2100H ES=2111H SS=2000H BX=106H CX=3H SI=106H DI=12H BP=1100H SP=1100HFR=3402H (FR 标志寄存器,FR 中的DF -字符串操作方向位为1)在执行下列指令后,写出寄存器AX中的内容 0) pop ax; AX= 1) mov ax,bx; AX= 2) mov ax,[bx];AX= 3) mov ax,102H;AX= 4) mov ax,[102H];AX= 5) mov ax,6[SI];AX= 6) lea ax,6[BX][DI];AX= 7) mov ax,[BP+DI];AX= 8) rep lodsw;AX= , 还需写出SI=2、实验内容: (1)开始菜单下选择运行,输入cmd 回车,在开启的窗口中输入debug 后回车,进入程序输入环境(2)利用r 指令显示当前各寄存器储值并按照上文中的寄存器值进行修改 结果如下:物理地址 内容(字节) 物理地址 内容(字节)21100H BEH 21110H 99H 21101H 02H 21111H 00H 21102H 01H 21112H E8H 21103H 8BH 21113H 7EH 21104H 44H 21114H E0H 21105H 02H 21115H 74H 21106H 29H 21116H 06H 21107H 44H 21117H E8H 21108H 04H 21118H 17H 21109H 9CH 21119H 01H 2110AH 50H 2111AH ACH 2110BH E6H 2111BH EBH 2110CH 99H 2111CH 34H 2110DH C6H 2111DH 00H 2110EH 06H 2111EH 30H 2110FHE8H2111FH0BH(3)d指令查看21100H——2111FH内存单元的内容(4)e指令对该段内存单元进行赋值(5)a指令按顺序输入要求中列出的指令(6)u指令进行反汇编(7)t指令(跟踪命令)逐条运行指令,观察记录指令运行结果3、实验结果0) pop ax; AX=02be1) mov ax,bx; AX=01062) mov ax,[bx];AX=44293) mov ax,102H;AX=01024) mov ax,[102H];AX=8b015) mov ax,6[SI];AX=c6996) lea ax,6[BX][DI];AX=011e7) mov ax,[BP+DI];AX=7ee88) rep lodsw;AX=4429, SI=0108实验内容二:1、实验目的:熟悉masm for windows 软件的应用,体会汇编程序的编写、编译、执行及调试等各个环节。
微机原理与接口技术实验1报告

微机原理与接口技术实验报告实验一实验名称:试验箱硬件连接实验实验一:地址译码电路设计实验实验内容:用74LS138译码器设计地址译码电路,并用其输出作为基本输入输出单元的片选信号,使用设计的端口地址编写程序,实现数据的输入输出。
实验原理:微机接口电路中,常采用74LS138译码器来实现I/O端口或存储器的地址译码。
74LS138有3个输入引脚、3个控制引脚及8个输出引脚,其管脚信号如图1所示。
当3个控制信号有效时,相应于输入信号A、B、C状态的那个输出端为低电平,该信号即可作为片选信号。
32位总线地址是由XA2开始,所以地址是以4字节边界对齐的。
实验系统的I/O地址空间共有256字节,偏移地址一般从00H~FFH。
起始地址由PC机系统分配,可以查看端口资源得到起始地址。
所以设计地址译码电路,主要是针对XA7以下低8位地址线译码,得到偏移在00H~FFH之间的端口。
本实验要求不使用总线上的片选信号,自行设计端口偏移地址为E0H~FFH的译码电路,然后用译码输出作为I/O接口单元的片选。
编写程序,完成I/O数据操作。
实验步骤:(1) 实验接线图如图2所示,按图连接实验线路图。
(2)运行Tdpit集成操作软件,根据实验内容,编写实验程序,对实验程序进行编译、链接。
(3)运行程序,拨动开关,观看数据灯显示是否正确。
运行结果:屏幕上能够正确显示开关所表示的十进制数。
实验二:点阵LED显示设计实验实验内容:(1) 在TD-PIT+上使用基本输入输出单元中的两路输出OA[7:0]、OB[7:0]分别控制点阵LED的行控制R[7:0]和列控制L[7:0]。
编写程序,使点阵LED的每一行和每一列依次循环显示。
(2) 在TD-PIT++上使用32位I/O接口单元的32位输出O0~O31控制点阵LED 单元R0~R15和L0~L15。
编写程序,在16×16点阵上循环显示汉字。
实验原理:8×8点阵LED相当于8×8个发光管组成的阵列,其中每一行共用一个阳极(行控制),每一列共用一个阴极(列控制)。
微机原理及接口技术实验报告

实验一 DEBUG命令及其基本操作一.实验目的:1.熟练掌握DEBUG的常用命令,学会用DEBUG来调试程序。
2.深入了解数据在存储器中的存取方法,了解堆栈中数据的压入与弹出方法。
3.掌握各种寻址方法,了解简单指令的执行过程。
二、实验容:1.打开计算机,在WINXP操作系统下,点击“开始”,选择“运行”,在“打开”一栏中输入“debug”,运行DEBUG应用程序,将出现DEBUG的提示符“-”。
2.在DEBUG提示符后键入字母“-a100”,回车后,屏幕上就会出现下面类似的容:(具体到每个计算机所产生的段地址和偏移地址可能有所不同)这表示在地址1383:0100处,DEBUG等待用户键入程序助记符,下面键入程序:3.在DEBUG的提示符后键入G,这是执行程序的命令,然后回车,就可以看到结果了。
4.现在让我们用“d”命令来看一下存储器在100H~107H这8个单元,程序覆盖了原来的容,右边的字符是组成程序的ASCII码等价字符,圆点表示不可显示字符。
5.下面我们用反汇编命令来查看一下所键入的程序。
“U”命令的格式是“U起始地址,终止地址”,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。
键入:大家在屏幕上不仅可以看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。
6.现在我们修改存储单元的容,看看显示情况和变化。
我们看到显示的结果发生了变化,这是因为DOS的2号功能调用是显示输入数据的ASCII 码字符。
7.下面我们给程序命名并存盘。
在键入“n”后紧跟程序名及扩展名因为文件的字节数必须事先放在BX和CX中,其中BX保存高16位,CX保存低16位,整个32位的数保存文件的字节数,一般来说,BX设置为0,因为CX可存放的字节数为64K,对于一般的程序已足够了。
8.结束后可用Q命令退出DEBUG程序。
三、实验习题1.写出完成下列功能的指令序列(1)传送20H到AL寄存器(2)将(AL)*2(3)传送25H到BL寄存器(4)(AL)*(BL)问最后的结果(AX)=?单步执行结果:2.分别写出完成下列指令要求的指令:(1)将BX的低4位清零;(2)将AX的高4位置1;(3)将DX的低4位取反;(4)将CX的中间八位清零;(5)将AX中与BX中的对应位不相同的位均置1. 解答:(1)and bx,fff0。
微机原理与接口技术-清零程序实验报告

《微机原理与接口技术》课程实验报告
一、实验目的和要求
实验目的:掌握汇编语言设计和调试方式;
实验要求:通过本实验,掌握8051汇编程序设计以及仿真实验的流程及方法。
二、实验环境
DVCC单片机仿真实验系统独立工作以及连PC机。
三、实验内容及实施
【实验内容】把50H~5FH单元的内容清零。
【源程序】
【实验步骤】
DVCC仿真实验系统连PC机时
(1)连接好相应的实验线路;
(2)在闪动“P.”状态,按PCDBG键;
(3)在PC机处于在Win95/98软件平台下,单击DVCC图标;
(4)在系统设置选项中设定仿真模式应设定为内程序、外数据;
(5)根据屏幕提示进入51/96动态调试菜单;
(6)连接DVCC实验系统;
(7)装载目标文件;
(8)设置PC起始地址;
(9)从起始地址开始连续运行程序;
(10)调出外部数据窗口,检查50H~5FH单元的内容是否全部被清零。
四、实验结果
五、实验讨论
通过8051汇编程序的设计、编译及运行,调出外部数据窗口,我们可以观察到从50H~5FH单元的内容已经被全部清零。
刚开始我们并没有做到全部单元清零,后来通过不断地调试错误和运行,实现了实验目的。
通过本次实验,掌握了汇编语言的设计,实现了清零操作,并且熟悉了仿真实验系统的键盘操作以及基本仿真软件的使用。
微机原理及接口技术实验一

微机原理与接口技术实验报告班级:学号: 姓名: 实验日期:2010-10-17预习报告成绩:实验成绩:实验一系统认识实验一、实验目的掌握微型计算机汇编软件调试源程序的基本操作。
熟悉传送类指令、简单运算类指令来编写汇编语言源程序,掌握调试过程及实验结果分析。
二、实验内容1、从3500H内存单元开始建立0~15共16个数据(建立的数据为00H,01H~09H,0AH~0FH),并运行之,检查记录结果。
实验程序清单:DATA SEGMENTORG 3500H ;设定起始偏移地址MEM1 DB 16 DUP(?)DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DI,3500H ;设数据区首址MOV CX,0010H ;字节数送入CXMOV AH,00HSAHF ;清标志寄存器MOV AL,00HA1: MOV [DI],AL ;写入一字节ITC DI ;修改地址指针INC AL ;修改数据LOOP A1 ;未填完转移MOV AH,4CHINT 21HCODE ENDS ;代码段结束END START2、如果1建立的数据为BCD码表示的十进制数据(即建立的数据为00H,01H-09H,10H-15H),修改上述程序并完成调试,检查记录结果。
●实验程序清单:DATA SEGMENTORG 3500HMEM1 DB 16 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DI,3500HMOV CX,0010HMOV AH,00HSAHFMOV AL,00HDAAA1: MOV [DI],ALINC DIINC ALDAALOOP A1MOV AH,4CHINT 21HCODE ENDSEND START3、编程完成1+2+3+4+5+6+7+8+9求和运算。
微机原理实验报告

校区实验报告课程名称____________________________ 专业班级_____________________________ 学生及学号____________________________指导教师____________________________实验地点————————————————2015 ~2016 学年第二学期《微机原理与接口技术》实验一(1)实验名称存贮器部数据传送姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、初步掌握星研集成环境工具软件的使用方法。
2、掌握存储器部不同位置间数据传送的方法。
3、认真预习本节实验容,尝试自行编写程序,填写实验报告。
二、实验容(包括实验步骤和代码)1、编写源程序,要求将数据段中3000H~30FFH 单元的容传送给6000H~60FFH 单元中。
2、编译、连接所编写的源程序。
3、执行程序前,利用存贮器窗口将DS:3000H~300FH 中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,在相对应的地址中直接输入数据即可。
4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式运行程序,同时在工作区窗口的CommonRegister 视图中查看本程序所使用的寄存器(CX、DI、SI)容的变化。
5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。
程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DI,6000HCLDREPE MOVSBMOV CX,100HMOV SI,3000HMOV DI,6000HREPE CMPSBJNE ERRORTRUE: JMP $ERROR: JMP $END START三、实验结果及其分析1、通过该实验,成功地将数据段中3000H~30FFH 单元的容传送到了6000H~60FFH 单元中。
微机原理与接口技术实验报告参考

微机原理与接口技术实验报告实验一显示程序实验一、实验目的1. 掌握在PC机上以十六进制形式显示数据的方法;2. 掌握部分DOS功能调用使用方法;3. 熟悉Tddebug调试环境和Turbo Debugger的使用。
二、实验所用设备1. PC微机一台。
三、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。
实验中可使用DOS功能调用(INT 21H)。
(1) 显示单个字符输出入口:AH=02H调用参数:DL=t出字符(2) 显示字符串入口:AH=09H调用参数:DS:DX串地址,’$'为结束字符(3) 键盘输入并回显入口:AH=01H返回参数:AL=t出字符(4) 返回DO系统入口:AH=4CH调用参数:AL=M回码四、实验步骤1. 运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1-1示;2. 使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;3. 使用Rmrun菜单中的Run,运行程序,观察运行结果;4. 使用Rmrun菜单中的Debug调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5. 更改数据区中的数据,考察程序的正确性。
图1-1显示程序实验流程图五、程序清单DATA SEGMENTMES DB 'laoshihao:', 0AH,0DH,'$' SD DB 'b'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, OFFSET MESMOV AH, 09HINT21HMOV DI, OFFSET SDMOV AL, DS:[DI]AND AL, 0F0HSHR AL,4CMP AL, 0AHJB L1ADD AL, 07HL1: ADD AL, 30HMOV DL, ALMOV AH, 02HINT21HMOV AL, DS:[DI]AND AL, 0FHCMP AL, 0AHJB L2ADD AL, 07HL2: ADD AL, 30HMOV DL, ALMOV AH, 02HINT21HMOV AX, 4C00HINT21HCODE ENDSEND START六、实验调试过程调试过程中出现警告,显示没有使用堆栈段。
微机原理与接口技术硬件实验报告

微机原理与接口技术硬件实验报告目录实验一基本的IO实验 (2)A.I/O地址译码 (2)一、实验目的 (2)二、实验原理和内容 (2)三、硬件接线图与软件流程图 (3)四、源程序 (4)五、实验结果 (5)实验总结 (5)六、实验收获与心得体会 (5)B.简单并行接口 (5)一、实验目的 (5)二、实验原理和内容 (6)三、硬件接线图与软件流程图 (6)四、源程序 (7)五、实验结果 (8)六、实验总结 (8)七、实验收获与心得体会 (8)实验二可编程并行接口8255实验 (8)一、实验目的 (8)二、实验原理和内容 (8)三、硬件接线图与软件流程图 (10)四、源程序 (12)五、实验结果 (15)六、实验总结 (15)七、实验收获与心得体会 (15)实验三可编程定时器/计数器(8253)实验 (15)一、实验目的 (15)二、实验原理和内容 (15)三、硬件接线图与软件流程图 (17)四、源程序 (17)五、实验结果 (24)六、实验总结 (24)七、实验收获与心得体会 (24)八、思考题 (24)实验四串行通讯接口8251实验 (25)一、实验目的 (25)二、实验原理和内容 (25)三、硬件接线图与软件流程图 (25)四、源程序 (26)五、实验结果 (31)实验总结 (31)六、实验收获与心得体会 (31)七、思考题 (31)实验一基本的IO实验A.I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容1.实验电路硬件接线图所示,其中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输出一个负脉冲。
微机原理与接口实验报告

微机原理与接口实验报告专业班级: _________ 学号: ________姓名: ___________指导老师:陆勤实验一8255A应用一数码管动态显示一、实验目的1、掌握8255A的工作方式、编程原理和微机接口方法。
2、了解LED数码管动态显示的工作原理及编程方法。
二、实验内容编制程序,使数码管显示“ DICE88'字样。
三、实验程序框图图6-1实验程序流程图四、实验步骤联机模式:(1)在PC机和实验系统联机状态下,运行实验系统dj8086k.exe(双击桌面OTA图标或通过开始-程序-dj8086k-DJ8086k微机原理与接口技术),新建文件并在编辑窗口输入汇编源程序,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(2)数码管显示“ DICE88'字样。
脱机模式:(1 )在P.态下,通过单板机小键盘,从2DF0地址开始输入机器码(参见附录三),完成后返回监控,输入起始地址2DF0,再按EX键执行。
(2)数码管显示“ DICE88”字样。
五、实验程序清单CODE SEGMENT ; display "DICE88"ASSUME CS:CODEORG 2DF0HSTART: JMP START0PA EQU 0FF20H ; 字位口PB EQU 0FF21H ; 字形口PC EQU 0FF22H ; 键入口BUF DB ?,?,?,?,?,?data1:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0H,89h,0c1h,87h;修改89h、0c1h、87h各自对应:H U、tSTART0: CALL BUF1CON1: CALL DISPJMP CON1DISP: MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ; 显示子程序,5msMOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH JZLX1MOV AL,0FFHMOV DX,PAOUT DX,ALINC BXROR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,0DHMOV BUF+1,01HMOV BUF+2,0CHMOV BUF+3,0EHMOV BUF+4,08HMOV BUF+5,08HRETCODE ENDSEND START六、思考题:修改程序使之;01H;00H;SHR CL,1; 实验修改mov BUF,0Ah; 实验修改mov BUF+1,16h; 实验修改mov BUF+2,17h; 实验修改mov BUF+3,18h; 实验修改mov BUF+4,00h; 实验修改mov BUF+5,09h AHUt09”。
微机原理与接口技术实验报告

.... 目录实验一数据传送 (2)实验二算术运算 (13)实验三代码转换 (25)实验四程序的基本结构练习 (36)实验五存储器(RAM 6264)扩展 .................................... 错误!未定义书签。
实验六可编程并行接口(8255)扩展............................. 错误!未定义书签。
实验七可编程计数/定时器(8253)扩展....................... 错误!未定义书签。
实验八A/D、D/A转换 .......................................................... 错误!未定义书签。
实验九可编程串行通信接口(8251)扩展.................... 错误!未定义书签。
实验一:数据传送实验学时:2实验类型:验证实验要求:必修一.实验目的1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法;学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件);学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件);学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件);学习用调试软件TD.EXE调试可执行文件;2.掌握各种寻址方法以及简单指令的执行过程。
二.实验器材PC机三.实验组织运行要求1.利用堆栈实现AX的内容与BX的内容进行交换。
堆栈指针SP=2000H,AX=3000H,BX=5000H;2.汇编、调试、观察、记录结果;⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘;⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件);⑶用调试软件TD调试、运行程序,观察、记录结果。
四.实验步骤1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘⑴汇编语言程序的上机过程①进入\SY86子目录E:>CD\SY86E:\SY86>②进入QEDIT.EXE 编辑界面E:\SY86> Q③输入文件名*.ASM(如M1.ASM)后,输入源程序源程序DATA SEGMENT PARA PUBLIC’DATA’;数据段定义DB 512 DUP(0)DATA ENDSSTACK SEGMENT PARA STACK’STACK’;堆栈段定义DB 512 DUP(?)STACK ENDSCODE SEGMENT PARA PUBLIC’CODE’;代码段定义ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK MAINPROC FAR ;定义过程程序PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,2000hMOV AX,3000hMOV BX,5000hPUSH AXPUSH BXPOP AXPOP BXRETMAIN ENDP ;结束主要部分程序CODE ENDS ;结束代码段END MAIN ;结束汇编⑵用MASM程序产生.OBJ文件操作如下:E:\SY86> MASM M1.ASM M1.OBJMicrosoft(R)Macro Assembler Version 5.00Copyright(C)Microsoft Corp 1981-1985,1987. All rights reserved.Object Filename [HEXASC.OBJ]:Source listing [NUL.LST]:Cross-reference [NUL.CRF]:51576+385928 Bytes symbol space free0 Warning Errors0 Severe Errors以上说明汇编过程已经完成。
微机原理与接口技术实验报告

微机原理与接口技术实验报告专业____________________ 年级___________________ 完成时间________________小组成员_________________________________________________________________实验一汇编语言编译过程一、实验目的1、熟悉汇编语言源程序的基本格式。
2、掌握在DOS环境下汇编程序的编写、汇编和调试方法。
3、掌握在MF2KP(MIFID实验箱软件平台)环境下汇编程序的编写、汇编和调试方法。
二、实验内容软件实验1、编写汇编语言源程序2、使用MASM进行汇编,查找错误并修改3、使用LINK进行连接4、运行程序三、实验要求在DOS环境下利用文本编辑器编写汇编语言源程序,用汇编工具编译、调试、连接,生成可执行文件在DOS环境下正确运行,并记录相关数据。
四、实验仪器IBM-PC机,MFID实验箱五、实验步骤1、在DOS方式下键入edit new.asm<CR>2、输入源程序并保存3、键入masm new<CR>进行汇编,生成new.obj目标文件,并保存new.list列表文件4、如果提示有错误,参考列表文件并修改程序文件new.asm,重复第三步5、键入link new<CR>进行连接,生成new.exe可执行文件6、键入new<CR>运行程序六、实验程序stack segment stack ‘stack’dw 32 dup(?)stack endsdata segmentSB DB 9AHOBUF DB 9 DUP (?)data endscode segmentmain proc farassume ss:stack, cs:code, ds:datastart: push dssub ax, axmov ax, datamov ds, axMOV CX, 8MOV BX, 0MOV AL, SBAGAIN: MOV AH,0SHL AX, 1ADD AH, 30HMOV OBUF[BX], AHINC BXLOOP AGAINMOV OBUF[BX], ‘$’MOV DX, OFFSET OBUFMOV AH, 9INT 21Hretmain endpcode endsend start七、实验结果分析1、记录编译过程中错误并分析原因2、本程序中9号功能调用输出数据如何获得3、如将MOV CX, 8 语句中的8改为4,输出结果又是什么4、如果将语句MOV OBUF[BX], ‘$’去掉,输出结果是什么,试分析其原因微机原理与接口技术实验报告专业____________________ 年级___________________ 完成时间________________小组成员_________________________________________________________________实验二DEBUG调试一、实验目的1、熟悉使用DEBUG调试可执行文件的基本方法2、掌握在DEBUG中显示寄存器内容与显示存储器内容的命令3、掌握利用DEBUG中的反汇编命令对可执行文件进行反汇编与置断点的命令二、实验原理DEBUG是一个专门为汇编语言设计的交互式调试工具,它提供一个控制测试的环境,以便用户能够监视和控制被调试程序的执行;可以直接确定直接确定程序中出现的问题,然后立即修改程序以便判定这些问题是否已经解决,而不必重新去编写一个程序;可以直接设置寄存器和存储器的值,也可设置断点使程序暂停执行以便察看中间结果;总之,它为汇编语言程序员提供了非常有效的调试手段。
微机原理与接口技术实验报告

微机原理与接口技术实验报告姓名:杨振伟班级:机制本1304学号:321304010428教师:袁兴起实验一可编程定时器/计数器(STC10F04XE)一、实验目的掌握STC10F04XE的基本工作原理和编程方法。
二、实验内容1.按下图虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
2.按下图连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
三、编程提示1、STC10F04XE地址分析:控制寄存器地址:0C403H计数器0地址:0C400H计数器1地址:0C401HCLK0连接时钟:1MHz。
2、程序参考流程图四、汇编语言程序 (1)CODE SEGMENTASSUME CS:CODESTART:MOV AL,10H ;计数器0工作方式0 MOV DX,0C403HOUT DX,AL ;写入控制端口 MOV AL,07H ;计数值为5 MOV DX,0C400HOUT DX,AL ;写入计数值的低字节 MOV CL,0 LOP: MOV DX,0C400HIN AL,DX ;读计数值 CMP AL,CLJZ L0 ;计数值为CL 里的值则跳到L0执行 MOV CL,ALADD AL,30H ;AL 里的值变为它的ASCII 码值 MOV DL,ALMOV AH,02H ;调用2号功能输出单个字符INT 21HJMP LOP ;循环输出L0: CMP AL,0JNZ LOP ;AL里的值为减为0时,返回DOS,否则跳到LOP继续循环 MOV AH,4CHINT 21HCODE ENDSEND START(2)CODE SEGMENTASSUME CS:CODESTART:MOV AL,36H ;计数器0,先读写低字节,再读写高字节,方式3MOV DX,0C403HOUT DX,ALMOV AX,1000 ;计数初值1000MOV DX,0C400HOUT DX,AL ;写计数器0的低字节MOV AL,AHOUT DX,AL ;写计数器0的高字节MOV AL,76H ;计数器1,先读写低字节,再读写高字节,方式3MOV DX,0C403HOUT DX,ALMOV DX,0C401HMOV AX,1000 ;计数初值1000OUT DX,AL ;写计数器1的低字节MOV AL,AHOUT DX,AL ;写计数器1的高字节MOV AH,4CHINT 21HCODE ENDSEND START五、总结在编制本实验程序时,由于程序本身比较简单,所以写代码时基本没有遇到什么困难,但在实际操作过程中,因为种种原因导致结果有时不太稳定。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验一,微机原理实验。
1. 实验目的。
本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。
3. 实验步骤。
(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。
(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。
(3)了解存储器与I/O接口的基本概念和工作原理。
(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。
通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。
实验二,接口技术实验。
1. 实验目的。
本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。
3. 实验步骤。
(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。
(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。
(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。
(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。
通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。
总结。
通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。
希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。
微机原理及接口技术-小灯闪烁仿真实验实验报告

实验报告
课程名称微机原理及接口技术
实验名称实验报告(一):小灯闪烁仿真实验
实验目标:利用Keil的仿真实验环境,编程实现使连接到P1.0引脚的小灯亮灭闪烁。
请图文结合详细描述实验流程与实验结果,给出带注释的源代码以及实验结论等。
1.实验流程
·新建一个工程项目文件,并取名为“led闪烁”,同时选择目标器件AT89C51。
由于是汇编语言,故而选择“否”
·将文件添加到项目中并键入程序
创建文件,保存为“led闪烁.asm”,并将文件添加到项目中。
将程序键入。
·为工程项目设置软硬件调试环境并生成.hex文件。
·程序文件的编译·软件仿真、调试
在调试窗口调试,观察P1观察口。
运行程序可观察到P1窗口闪烁变化。
2. 实验结果
·编译结果
·P1.0引脚的小灯亮灭闪烁结果
3. 带注释的源代码
4. 实验结论、建议和意见
实验结论:
利用Keil的仿真实验环境,可以通过设置延时来编程实现并观察到P1.0引脚的小灯亮。
微机原理与接口实验

微机原理与接口实验实验目的:通过实验,掌握微机系统原理和接口的基本知识,能够正确使用各种接口设备进行输入输出操作。
实验器材:8086微机系统、键盘、数码管、LED灯、示波器等。
实验一:键盘输入实验实验内容:1.连接键盘到8086微机系统。
2.编写汇编程序,实现用户输入字符,并在数码管上显示用户输入的字符。
3.将程序加载到存储器中,并运行程序,进行输入测试。
实验步骤:1.将键盘接口与8086微机系统相连接。
键盘的数据引脚接到8086微机系统的8位数据总线,键盘的控制引脚接到8086微机系统的地址总线和控制总线上。
2.编写汇编程序,初始化键盘接口并循环接收键盘输入的字符。
将键盘输入的字符加载到寄存器中,并将其数字值转换为对应的ASCII码值,再将其显示在数码管上。
3.将汇编程序加载到存储器中,并运行程序进行测试。
实验结果:通过实验,可以实现键盘输入功能,并能够在数码管上显示用户输入的字符。
实验二:LED灯输出实验实验内容:1.连接LED灯到8086微机系统。
2.编写汇编程序,实现控制LED灯的亮灭。
3.将程序加载到存储器中,并运行程序,观察LED灯的亮灭情况。
实验步骤:1.将LED灯接口与8086微机系统相连接。
LED灯的引脚接到8086微机系统的8位数据总线上。
2.编写汇编程序,初始化LED灯接口并循环控制LED灯的亮灭状态。
3.将汇编程序加载到存储器中,并运行程序观察LED灯的亮灭情况。
实验结果:通过实验,可以实现LED灯的亮灭控制,根据程序中的指令可以控制LED灯的闪烁频率和顺序。
实验三:外设输入输出实验实验内容:1.连接外设设备(如温湿度传感器等)到8086微机系统。
2.编写汇编程序,读取外设设备的输入信息,并控制外设设备的输出。
3.将程序加载到存储器中,并运行程序,观察外设设备的输入输出情况。
实验步骤:1.将外设设备接口与8086微机系统相连接。
外设设备的输入引脚接到8086微机系统的数据总线上,外设设备的输出引脚接到8086微机系统的控制总线上。
微机原理与接口技术实验报告.

实验一、认识Tddebug集成操作软件一.实验内容(一)实验题目:数据传送实验1. 编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
2. 修改此程序,采用字符串传送指令完成。
(二)实验目的:通过对该程序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各个寄存器及数据区的内容。
(三)实验步骤:1. 运行Tddebug软件,选择Edit菜单编写实验程序2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
3.使用Rmrun菜单中的Run运行程序,观察运行结果。
4.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各寄存器及数据区的内容。
过程如下:1)按F7单步执行,在代码区中有一个三角,表示正在执行的指令。
每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。
2)检查内存数据区的内容,关键是找出用户程序的数据段和附加段:●方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区●方法2:选择菜单View| Dump,弹出内存数据显示窗口。
3) 查看执行结果:按Alt+F5,切换到用户窗口。
5.更改数据区中的数据,考察、调试程序的正确性。
二.分析设计思想,绘制实验原理图、流程图。
汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。
三.程序清单及相关注释。
DDATA SEGMENT ;定义源数据段MSR DB "HELLO,WORLD!$"LEN EQU $- MSRDDATA ENDSEXDA SEGMENT ;定义附加数据段MSD D B LEN DUP(?)EXDA ENDSMYSTACK SEGMENT ;定义堆栈段STACK DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DDATA,ES:EXDASTART: MOV AX,DDATAMOV DS,AX ;装载数据段寄存器MOV AX,EXDAMOV ES,AX ;装载附加数据段寄存器MOV SI,OFFSET MSRMOV DI,OFFSET MSDMOV CX,LENMOV BX,0NEXT: MOV AL,MSR[BX] ;开始传输数据MOV ES:MSD[BX],ALINC BXLOOP NEXTPUSH ESPOP DS ;将附加段寄存器指向的段值赋给数据段寄存器MOV DX,OFFSET MSDMOV AH,9INT 21H ;显示字符串MOV AH,4CHINT 21H ;返回DOS状态CODE ENDSEND START四.实验结果并分析。
微机原理与接口技术,实验报告一

微机原理与接口技术,实验报告一评阅微机原理与接口技术实验报告一姓名匡越学号***-*****16 时间地点实验题目一、实验目的1. 熟悉Keil软件使用 2. 熟悉MCS-51指令 3. 学习简单程序的调试方法二、实验说明通过实验了解单片机内部存储器的结构和分配及读写存储器的方法,熟悉MCS-51指令同时,学习单片机程序编程、调试方法。
三、实验内容及步骤1.启动PC机,打开Keil软件,软件设置为模拟调试状态。
在所建的项目文件中输入源程序1,进行编译,如有错误按提示找到该行并纠错,重新编译直到通过。
2.编译无误后,打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化并将观察到的结果记录到预习报告。
3.新建另一个项目输入源文件2,打开CPU窗口,选择单步或跟踪执行方式运行程序,观察存储块数据变化情况记录到预习报告。
点击复位按钮,改变存储块数据,点击全速执行快捷按钮,点击暂停按钮,观察存储块数据变化情况,记录到预习报告。
点击复位按钮,改变存储块数据,分别LOOP、LOOP1设置断点,点击全速执行快捷按钮,在断点处观察寄存器及存储块数据变化情况。
WAVE软件使用方法参考其帮助文件。
四、实验程序流程框图、实验程序1、源程序1 ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV R0,#30H ;(R0)= (00H)= MOV A, #40H ;(A)= MOV R6, A ;(A)= ,(R6)= MOV A, @R0 ;(R0)= (A)= MOV 40H, A ;(A)= (40H)= MOV 30H,40H ;(30H)= (40H)= MOV R1,#40H ;(R1)= MOV @R1,#0AAH;(R1)= (40H)= MOV SP,#60H;(SP)= PUSH ACC;(SP)= (61H)= PUSH 30H; (SP)= (62H)= MOV A,#0FFH;(SP)= (A)= MOV 30H,#30H;(SP)= (30H)= POP ACC;(SP)= (A)= POP 30H;(SP)= (30H)= ADD A,30H;(30H)= (A)= Cy= SUBB A,#10;(A)= Cy= MOV R4,#***-*****B;(R4)= H MOV A,#39H;(A) = ADD A,R4;(A) = (R4=) DA A;(A) = Cy= MOV 28H,#55H;(28H) = Cy= MOV C,40H;(PSW) = Cy= MOV 26H,#00H;(26H) = Cy= MOV 30H,C;(30H) = (26H.1) = SJMP $ j点击project,选择下拉式菜单中的New project;k选择所要的单片机,这里我们选择常用的Ateml 公司的*****;l新建一个File,输入源程序;m将新建文件保存为text.asm的格式;n鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口实验报告计算机与信息工程学院11级通信工程20111105438 李楠
2.4 分支程序设计实验
一、实验目的
1. 掌握分支程序的结构。
2. 掌握分支程序的设计、调试方法。
二、实验设备
PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。
三、实验内容
设计一数据块间的搬移程序。
设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。
源数据块和目的数据块在存储中可能有三种情况.
实验程序清单(例程文件名为:A4-1.ASM)
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 0010H
MOV SI, 3100H
MOV DI, 3200H
CMP SI, DI
JA A2
ADD SI, CX
ADD DI, CX
DEC SI
DEC DI
A1: MOV AL, [SI]
MOV [DI], AL
DEC SI
DEC DI
DEC CX
JNE A1
JMP A3
A2: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNE A2
A3: MOV AX,4C00H
INT 21H ;程序终止
CODE ENDS
END START
四、实验步骤
1. 按流程图编写实验程序,经编译、链接无误后装入系统。
2. 用E命令在以SI为起始地址的单元中填入16个数。
3. 运行程序,待程序运行停止。
4. 通过D命令查看DI为起始地址的单元中的数据是否与SI单元中数据相同。
5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。
2.5 循环程序设计实验
一、实验目的
1. 加深对循环结构的理解。
2. 掌握循环结构程序设计的方法以及调试方法。
二、实验设备
PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。
三、实验内容及步骤
计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。
编写实验程序,计算上式的结果。
实验程序清单(例程文件名为:A5-1.ASM)
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,0001H
MOV BL,02H
A1: MOV AL,BL
INC BL
MUL BL
ADD DX,AX ;结果存于DX中
CMP AX,00C8H ;判断N(N+1)与200的大小
JNA A1
MOV AX,4C00H
INT 21H ;程序终止
CODE ENDS
END START。