当前位置:文档之家› 微机原理与接口技术实验报告

微机原理与接口技术实验报告

.... 目录实验一数据传送 (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以上说明汇编过程已经完成。

⑶用LINK程序产生EXE文件操作如下:E:\SY86>LINK M1.OBJMicrosoft(R)Overlay Linker Version 3.60Copyright(C)Microsoft Corp 1983-1987. All rights reserved.Run File [M1.EXE]:List File [NUL.MAP]:Libraries [.LIB]:E:\SY86>LINK程序输出3个文件:.EXE文件;.LIB库文件;.MAP列表文件。

连接过程全部完成,可以执行程序;⑷在TD状态下用单步运行F8对M1.EXE文件进行调试,观察、记录结果。

E:\SY86>TD进入TD调试软件后用单步执行F8命令从首地址开始执行指令并观察相应变化。

运行结果如下:―F8AX=0000 BX=0000 CX=000D DX=0000 SP=2000 BP=0000 SI=0000 DI=0000 DS=17F7 ES=17F7 SS=17F7 CS=17F7 IP=0103 NV UP DI PL NZ NA PO NC17F7:0103 B80030 MOV AX,3000―F8AX=3000 BX=0000 CX=000D DX=0000 SP=2000 BP=0000 SI=0000 DI=0000 DS=17F7 ES=17F7 SS=17F7 CS=17F7 IP=0106 NV UP DI PL NZ NA PO NC17F7:0106 BB0050 MOV BX,5000―F8AX=3000 BX=5000 CX=000D DX=0000 SP=2000 BP=0000 SI=0000 DI=0000 DS=17F7 ES=17F7 SS=17F7 CS=17F7 IP=0109 NV UP DI PL NZ NA PO NC17F7:0109 50 PUSH AX―F8AX=3000 BX=5000 CX=000D DX=0000 SP=1FFE BP=0000 SI=0000 DI=0000 DS=17F7 ES=17F7 SS=17F7 CS=17F7 IP=010A NV UP DI PL NZ NAPO NC17F7:010A 53 PUSH BX―F8AX=3000 BX=5000 CX=000D DX=0000 SP=1FFC BP=0000 SI=0000 DI=0000 DS=17F7 ES=17F7 SS=17F7 CS=17F7 IP=010B NV UP DI PL NZ NA PO NC17F7:010B 58 POP AX―F8AX=5000 BX=5000 CX=000D DX=0000 SP=1FFE BP=0000 SI=0000 DI=0000 DS=17F7 ES=17F7 SS=17F7 CS=17F7 IP=010C NV UP DI PL NZ NA PO NC17F7:010C 5B POP BX―F8AX=5000 BX=3000 CX=000D DX=0000 SP=2000 BP=0000 SI=0000 DI=0000 DS=17F7 ES=17F7 SS=17F7 CS=17F7 IP=010D NV UP DI PL NZ NA PO NC17F7:010D F4 HLT―2.用以上同样的方法,完成下列程序的调试:编辑、汇编、连接、运行程序,观察、记录结果。

⑴输入以下汇编程序(分号“;”后面内容不需输入)用单步运行执行程序,按分号后的要求记录结果。

源程序DATA SEGMENT PARA PUBLIC ‘DATA’DATA ENDSSTACK SEGMENT PARA STACK ‘STACK’DB 512 DUP (?)STACK ENDSCODE SEGMENT PARA PUBLIC ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,2000H ;AH=20HMOV DS,AX ;AL=00H DS=2000H MOV SS,AX ;SS=2000H AX=2000H MOV BX,2030H ;BH=20H BL=30H MOV SI,BX ;SI=2030HMOV DI,3040H ;DI=3040HMOV SI,DI ;SI=3040HMOV SP,50FFH ;SP=50FFHMOV DX,SP ;DH=50H DL=0FFHMOV CL,25 ;CL=25(19H)MOV BL,CL ;CL=19H BL=19HMOV AH,0F0H ;AH=0F0HMOV CH,AH ;CH=0F0HMOV BYTE PTR[DI],64 ;(DI)=40HMOV WORD PTR[SI],256 ;(SI)=00H (SI+1)=01H MOV DL,[SI+1] ;DL=01HMOV DH,1+[SI] ;DH=01HMOV AL,1[SI] ;AL=01HMOV WORD PTR[BX][SI],34 ;(BX+SI)=22H (BX+SI+1)=00H MOV [BX+SI+4],BL ;(BX+SI+4)=19HMOV BP,2[BX+DI] ;BP=0100HMOV [BP],AL ;(BP)=01HMOV AX,[BP][DI] ;AX=8B00HMOV BL,AL ;BL=00HMOV ES,BX ;ES=2000HPUSH BX ;SP=50FDH (SP,SP+1)=2000H PUSH DI ;SP=50FBH (SP,SP+1)=3040H POP CX ;SP=50FDH CX=3040HPOP DX ;SP=50FFH DX=2000HXCHG AX,BP ;AX=0101H BP=8B00HXCHG DH,BL ;DH=00H BL=20HLAHF ;FLAG=NV UP DI PL NZ NA PO NC;FLAG=00000000;AH=02HSAHF ;FLAG=NV UP DI PL NZ NA PO NC;FLAG=00000000;AH=02HPUSHF ;SP=50FDH (SP,SP+1)=3102HPOPF ;SP=50FDH;FLAG= NV UP DI PL NZ NA PO NC;FLAG=00000000NOPSTART ENDPCODE ENDSEND START⑵以文件名“E2”存盘;⑶单步运行程序,每运行一条指令即检查相应结果并予以记录;⑷利用断点运行、跟踪运行和全速运行等功能调试程序、运行程序并检查结果。

相关主题