ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:605.67KB ,
资源ID:8987435      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8987435.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机接口实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机接口实验报告.docx

1、微机接口实验报告武汉大学微机接口实验报告 实验一 数据传送一、实验目的1熟悉8086指令系统的数据传送指令及8086的寻址方式。2利用EMU调试工具来调试汇编语言程序。二、实验预习要求1复习8086指令系统中的数据传送类指令和8086的寻址方式。2预习EMU的使用方法:3按照题目要求预先编写好实验中的程序段。三、实验任务1通过下述程序段的输入和执行来熟悉EMU的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下: MOV BL,08H MOV CL,BL MOV AX,03FFH MOV BX,AXMOV DS:0020H,BX 2用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不

2、同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下: MOV AX,0102H MOV BX,0304H MOV CX,0506H MOV DX,0708H PUSH AX PUSH BX PUSH CX PUSH DX出栈段程序:POP CXPOP DX POP BX POP AX RET3. 指出下列指令的错误并加以改正,上机验证之。(1) MOV BX,SI存储器操作数不可直接传递,改为MOV BX, SI(2) MOV AH,BX操作数字长不相同,改为MOV AH,BH(3) MOV AX,SIDI基址変址寻址时,不允许两变址寄存器组合在一起,改为MOV AX,BXDI(4)

3、MOV BYTE PTRBX,2000H字长不同,改为MOV WORD PTRBX,2000H(5) MOV CS,AX段寄存器CS内容不通过MOV指令改写(6) MOV DS,2000H不能用立即数直接给段寄存器赋值,改为MOV AX, 2000H MOV DS, AX5. 将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。(1)直接寻址MOV AX , 1000HMOV 2010H,AX(2)寄存器间接寻址MOV BX,1000HMOV AX, BXMOV 2020H

4、, AX(3)变址寻址MOV SI,1000HMOV AX, SIMOV 2020H, AX(4)寄存器相对寻址MOV AX,1000HMOV BX,1000HMOV 1020HBX ,AX6. 设AX寄存器中的内容为1111H,BX寄存器中的内容为2222H,DS:0010H单元中的内容为3333H。将AX寄存器中的内容与BX寄存器中的内容交换,然后再将BX寄存器中的内容与DS:0010H单元中的内容进行交换。试编写程序段,并上机验证结果。MOV AX,1111HMOV BX,2222HMOV 0010H,3333HMOV DX,BXMOV BX,AXMOV AX,DXMOV DX,BXMO

5、V BX, 0010HMOV 0010H,DX7. 设(DS)1000H,(ES)2000H,有关存储器的内容如图1.5所示。要求将DS段的内容传送到AX寄存器,ES段的内容传送到BX寄存器,试编写程序段。MOV 1000H,0EEFFHMOV ES:2000H,0CCDDHMOV AX,1000HMOV BX,ES:2000H四、实验报告要求小结EMU的使用方法:1.首先选择是建立.COM 文件还是.EXE文件。这取决于是要编写运行一个程序段还是可执行程序。本节均是验证程序段。故采用.COM文件。实验二 算术逻辑运算及移位操作一、实验目的1熟悉算术逻辑运算指令和移位指令的功能。2了解标志寄存

6、器各标志位的意义和指令执行对它的影响。二、实验预习要求1复习8086指令系统中的算术逻辑类指令和移位指令。2按照题目要求在实验前编写好实验中的程序段。三、实验任务1实验程序段及结果表格如表1.2: 标志位CFZFSFOFPFAF程序段1:MOV AX, 1018HMOV SI, 230AHADD AX, SIADD AL, 30HMOV DX, 3FFHADD AX,BXMOV 20H, 1000HADD 20H, AXPUSH AXPOP BX000000000000000000000011000000000000000000000000000000000000000000程序段2:MOV

7、AX, 0A0AHADD AX, 0FFFFHMOV CX, 0FF00HADC AX, CXSUB AX, AXINC AXOR CX, 0FFHAND CX, 0F0FHMOV 10H, CX000000000000100011100011100010010010000000001010000010000010程序段3: MOV BL, 25HMOV BYTE PTR10H, 4MOV AL, 10HMUL BL000000000000000000000000000000程序段4:MOV WORD PTR10H,80HMOV BL, 4MOV AX, 10HDIV BL0000000000

8、00000000000000000000程序段5:MOV AX, 0DEC AXADD AX, 3FFFHADD AX, AXNOT AXSUB AX, 3OR AX, 0FBFDHAND AX, 0AFCFHSHL AX,1RCL AX,1000000001011100001000011000011001010001000001000100110112用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。写出完成此功能的程序段并上机验证结

9、果。程序如下:MOV BX,0010HMOV BX,10HMOV 0001HBX,04HMOV 0002HBX,30HMOV AL,BXADD AL,0001HBXADD AL,0002HBXMOV 0003HBX,ALMOV AL,BLMUL 0001HBXMUL 0002HBXMOV 0004HBX,AX3写出完成下述功能的程序段。上机验证你写出的程序段,程序运行的最后结果(AX)(1) 传送15H到AL寄存器;(2) 再将AL的内容乘以2;(3) 接着传送15H到BL寄存器;(4) 最后把AL的内容乘以BL的内容。程序如下:MOV AL,15HMOV DX,2MUL DXMOV BL,1

10、5HMUL BLRET4写出完成下述功能的程序段。上机验证你写出的程序段,程序运行后的商?(1) 传送数据2058H到DS:1000H单元中,数据12H到DS:1002H单元中;(2) 把DS:1000H单元中的数据传送到AX寄存器;(3) 把AX寄存器的内容算术右移二位;(4) 再把AX寄存器的内容除以DS:1002H字节单元中的数;(5) 最后把商存入字节单元DS:1003H中。程序如下:MOV 1000H,2058HMOV 1002H,12HMOV AX,1000HMOV CL,2SAR AX,CLDIV 1002HMOV 1003H,ALRET5下面的程序段用来清除数据段中从偏移地址0

11、010H开始的12个字存储单元的内容(即将零送到这些存储单元中去)。(1) 将第4条比较指令语句填写完整(划线处)。 MOV SI,0010H NEXT: MOV WORD PTRSI,0 ADD SI,2 CMP SI, (填写18) JNE NEXT HLT (2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H开始),则上述程序段应如何修改?程序如下:MOV SI,0020HNEXT: MOV WORD PTRSI,0SUB SI,2CMP SI,18 JNE NEXTHLT6输入并运行表1.3中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。程序

12、段字单元(1A00H)=字单元(1A02H)=MOV 1A00H, 0AA55HMOV 1A02H, 2AD5HSHL WORD PTR1A02H,1 CMP 1A00H, 8000HCMCRCL WORD PTR1A02H,1RCL WORD PTR1A00H,1550055D555AA55AA55AA5555AA55功能是将第一个数除以2,第二个数乘以4四、实验报告要求1简要说明ADD、SUB、AND、OR指令对标志位的影响。ADD:对6个状态标志位都会影响;SUB:影响与ADD指令影响完成相同;AND: 影响6个标志位,并使CF=OF=0;OR: 影响6个标志位,并使CF=OF=02简要

13、说明一般移位指令与循环移位指令之间的主要区别。一般移位: 将操作数右移m位,同时每移一位,左边的符号位保持不变,移出的最低位进入标志位CF。对于有符号数和无符号数而言,算术右移相当于除以2.;循环移位:循环移位指令的操作数形式与移位指令相同,如果仅移动一次,可以用1表示;如果需要移位多次,则需用CL寄存器表示移位次数。 实验三 算术逻辑运算及移位操作一、实验目的1熟悉串操作指令的功能。2了解串操作指令的使用方法。二、实验预习要求1复习8086指令系统中的串操作类指令。2按照题目要求在实验前编写好实验中的程序段。三、实验任务1输入以下程序段并运行之,回答后面的问题。 CLDMOV DI,1000

14、HMOV AX,55AAHMOV CX,10HREP STOSW (1) 从DS:1000H开始的16个字单元的内容是什么?(2) (DI)= ?(CX)= ?,并解释其原因。2在上题的基础上,再输入以下程序段并运行之,回答后面的问题。MOV SI,1000HMOV DI,2000HMOV CX,20HREP MOVSB (1) 从DS:2000H开始的16个字单元的内容是什么?(2) (SI)= ?(DI)= ?(CX)= ?,并分析之。3从DS:1000H开始存放有一个字符串”This is a string”,要求把这个字符串从后往前传送到DS:2000H开始的内存区域中(即传送结束后,

15、从DS:2000H开始的内存单元的内容为”gnirts a si siht”),试编写程序段并上机验证之。 #MAKE_COM# ORG 100H JMP STARTSTR DB THIS IS A STRING,13,10 START: LEA SI, STR MOV DI,1000H MOV CX,10H CLD REP MOVSB MOV CX,10H MOV SI,1000H MOV DI,200FHAGAIN: CLD LODSB STD STOSB LOOP AGAIN四、实验报告要求1简要说明执行串操作指令之前应初始化哪些寄存器和标志位。 应预设源串指针DS,SI,目标串指针ES

16、,DI,重复次数CX,及操作方向DF2总结串操作指令的用途及使用方法。实验四 字符及字符串的输入和输出一、实验目的1熟悉如何进行字符及字符串的输入输出。2掌握简单的DOS系统功能调用。二、实验预习要求1复习系统功能调用的1、2、9、10号功能。2按照题目要求预先编写好实验中的程序段。三、实验任务1要在屏幕上显示一个字符串“Hello, world”,写出该字符串变量的定义语句和显示这个字符串的程序段。上机验证之。 DSEG SEGMENTSTR DB Hello,world, 0DH,0AH,$DSEG ENDSCSEG SEGMENT ASSUME CS: CSEG,DS: DSEGSTAR

17、T: MOV AX,DSEG MOV DS,AX LEA DX,STR MOV AH,09H INT 21H MOV AH,4CH INT 21HCSEG ENDS END START2按6行16列的格式顺序显示ASCII码为20H到7FH之间的所有字符,即每16个字符为一行,共6行。每行中相邻的两个字符之间用空格字符分隔开。试编写程序段并上机运行验证。提示:程序段包括两层循环,内循环次数为16,每次内循环显示一个字符和一个空格字符;外循环次数为6,每个外循环显示一行字符并显示一个回车符(0DH)和一个换行符(0AH)。 程序如下:#MAKE_EXE#CODE SEGMENTMAIN PROC

18、 FAR ASSUME CS:CODESTART: MOV AH, 02H MOV DL, 20H MOV BL, 6 E: MOV CX, 16 L: INT 21H PUSH DX MOV AH, 02H MOV DL, 0 INT 21H MOV AH, 02H MOV DL, 0 INT 21H POP DX INC DL LOOP L PUSH DX MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02H MOV DL, 0AH INT 21H POP DX DEC BL CMP BL, 0 JNE AGAIN JE EEXIT: MOV AX, 4C

19、H INT 21HMAIN ENDPCODE ENDS END START四、实验报告要求11、2、9、10号功能的输入输出参数有哪些?分别放在什么寄存器中?2总结一下,如何实现字符及字符串的输入输出。 字符串输入:MOV AH, 0AH ;功能号0AH LEA DX, ; 字符串在内存中的存放地址(由DS:DX定) INT 21H 字符串输出:显示字符串(功能号=9) MOV AH, 9 LEA DX, ; DS:DX待输出字符串的偏移地址 INT 21H 注意:被显示的字符串必须以$结束。 微机原理与接口技术软件编程题目 (0)、设MEM1中有一个任意字符串STRING,以ASCII码$结

20、尾,假定MEM1中的字符串不会导致数据段的溢出,编写一个程序,在STRING中找到第一次出现“OK”这个字母序列的首地址,如果没有这个序列,则直接返回0,并在显示器(LED)上显示。 程序及结果如下所示: #MAKE_EXE#DATA SEGMENTSTRING DB DGDFEROKGVDF,0DH,0AH,$STR DB OK0DH,0AH,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART :LEA DX,STRMOV SI,DX INC SILEA DI , STRING CLD MOV AL,SISCAN: REPNE SCASB JZ MATCH NO: MOV DL,0JMP DESPLY ; MATCH:REPZ CMPSBPOP DIPOP SIJZ FOUNDJNZ NOJMP SCANDESPLY:MOV AH , 02H INT 21HFOUND: DEC DI HLT CODE ENDSEND START

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1