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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

汇编语言实验指导书.docx

1、汇编语言实验指导书微机原理与接口技术实验指导书容文杰 杨俊华 编写河北师范大学职业技术学院电子系目 录实验目的与要求.1实验一 汇编语言上机操作.2实验二 循环程序设计实验.9实验三 TDN86/51教学系统认识实验.11实验四 8259中断控制器应用实验.14实验五 8253定时/计数器应用实验.23实验六 8255并行接口应用实验.31附录一 DEBUG命令及操作.35附录二 系统编程信息.37实验目的与要求一、实验目的微机原理实验共安排了6个实验内容。其目的是使学生理解8086CPU系统的工作原理。熟悉8086指令系统和常用接口芯片的工作原理及使用方法。掌握汇编语言程序设计方法和常用系统

2、功能调用的使用方法,并能利用DEDUG调试工具来调试汇编语言程序。能够利用实验室中所提供的硬件环境搭建硬件控制电路,并能完成相应的控制功能和编制有关的控制程序。为学生从事计算机研究与应用工作打下一个坚实的基础。二、实验要求1. 实验前要预习,做好充分准备,包括了解相应接口芯片的工作原理和使用方法,分析或编制源程序清单,了解实验步骤和调试方法等。2. 要熟悉教学实验设备的使用方法。在实验过程中,要注意多观察,有意识地培养自己发现问题和解决问题的能力。3. 实验完成后,必须由实验指导教师检查运行结果,经教师确认后才算完成。4. 每个实验完成后,应写出实验报告。实验报告内容应包括:(1)实验目的;(

3、2)实验设备;(3)实验内容及步骤;(4)观察到的现象及结果分析;(5)实验中遇到的问题及解决办法;(6)实验的心得体会等。5. 实验时要遵守实验室的规章制度,爱护实验设备。6. 实验结束后,要将实验设备和实验材料收拾好,并经指导教师检查后方可离开。实验一 汇编语言上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。二、实验设备PC机及相应的软件。三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。2、利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。上机

4、操作过程:开始 输入cmd 确认后显示:C:Documents and settingAdministrator-输入 cd c:masm 后显示:c:masm-c:masmEDIT ABC.asmc:masmMASM ABC; 若有语法错,回EDIT下改该程序c:masmLINK ABC; 若有错,回EDIT下改程序c:masmABC 若运行结果错,回EDIT下改程序 或在DEBUG下调试,找原因。c:masmDEBUG ABC.exe 图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄存器的内容按二进制形式显示出来。设:(BL)=01010011B分析:采用2号功能调用,分别输

5、出30 31 30 31 30 30 31 31显示:01010011参考程序:CODE SEGMENT ASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8 MOV BL ,53HNEXT: SHL BL ,1 ;将显示位移至CF中 JC ONE ;CF=1? MOV DL ,30H ;CF=0, 将0的ASCII放在DL中 JMP EXITONE: MOV DL ,31H ;CF=1, 将1的ASCII放在DL中EXIT: MOV AH ,2 INT 21H ;调用DOS功能显示 DEC CX ;循环次数减1 JNZ NEXT ;判断是否结束MOV AH,4CH

6、 ;返回DOS INT 21HCODE ENDS END START上机操作:c:masmEDIT ShowBL.asm ;编辑源程序c:masmMASM ShowBL ;汇编成ShowBL.objMicrosoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved. 48912 + 447243 Bytes symbol space free 0 Warning Errors 0 Severe Errorsc:masmLINK ShowBL ;连接成Show

7、BL.exe Microsoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:masmShowBL ;装载并执行ShowBL.exe01010011 ;屏幕显示c:masm-在DEBUG下查看ShowBL.exe的装入情况:c:masmDEBUG ShowBL.exe- R ;查看当前寄存器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=

8、0000 SI=0000 DI=0000DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53 - U CS:0 ;查看程序 0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E.0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21.-G ;执行程序01010011Program terminated normall

9、y-例2 :将某段中的字符串“Hello!”传送到另一段中。编写完整的汇编语言程序,完成内存数据块传送功能。参考程序:AA SEGMENT ;数据段1XX DB Hello! ;定义源串AA ENDSBB SEGMENT ;数据段2YY DB 6 dup (?) ;定义目的缓冲区BB ENDSCC SEGMENT ;代码段ASSUME CS:CC,DS:AA,ES:BB ;指示程序中标号,变量所在段START:CLD ;设置传送方向 MOV AX , AA ;DS:SI 源串首地址 MOV DS , AX LEA SI , XX MOV AX , SEG YY ;ES:DI 目的首地址 MOV

10、 ES , AX MOV DI , OFFSET YY MOV CX , 6 ;CX 串的长度 REP MOVSB ;串传送 MOV AH , 4CH ;调用4CH系统功能,返回DOS INT 21H CC ENDS END START ;指示程序结束和程序入口c:masmEDIT hello.asm ;编辑源程序c:masmMASM hello ; ;汇编源程序 Microsoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved. 49860 + 4212

11、41 Bytes symbol space free 0 Warning Errors 0 Severe Errorsc:masmLINK hello ;连接程序Microsoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:masmhello ;执行程序 c:masm- c:masmDEBUG hello.exe ;利用DEBUG查看结果-U ;查看程序代码 CLDMOV AX

12、, AAMOV DS, AX LEA SI, XX MOV AX, SEG YYMOV ES, AX MOV DI,OFFSET YY MOV CX, 6REP MOVSBMOV AH,4CHINT 21H129F:0000 FC CLD129F:0001 B89D12 MOV AX,129D129F:0004 8ED8 MOV DS,AX129F:0006 8D360000 LEA SI, 0000 129F:000A B89E12 MOV AX,129E129F:000D 8EC0 MOV ES,AX129F:000F BF0000 MOV DI,0000129F:0012 B90600

13、MOV CX,0006129F:0015 F3 REPZ 129F:0016 A4 MOVSB129F:0017 B44C MOV AH,4C129F:0019 CD21 INT 21对应的源程序见文本框中所示。-D 129D:0 L20 ;执行程序前,查看源串内容129D:0000 48 65 6C 6C 6F 21 00 00-00 00 00 00 00 00 00 00 Hello!.129D:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .-D 129E:0 L20 ;执行程序前,查看目的串129E:0000 00 00 0

14、0 00 00 00 00 00-00 00 00 00 00 00 00 00 .129E:0010 FC B8 9D 12 8E D8 8D 36-00 00 B8 9E 12 8E C0 BF . .6. -G ;执行程序Program terminated normally-D 129D : 0 L50 ;从源串重新查看 129D:0000 48 65 6C 6C 6F 21 00 00-00 00 00 00 00 00 00 00 Hello!.129D:0010 48 65 6C 6C 6F 21 00 00-00 00 00 00 00 00 00 00 Hello!.129D

15、:0020 FC B8 9D 12 8E D8 8D 36-00 00 B8 9E 12 8E C0 BF.6.129D:0030 00 00 B9 06 00 F3 A4 B4-4C CD 21 09 E8 08 00 03 .L.!.129D:0040 F1 E8 03 00 3C 0D C3 AC-E8 EC F8 75 04 3C 3B 75 .u.;u-AA SEGMENTXX DB Hello! AA ENDSBB SEGMENT YY DB 6 DUP (?) BB ENDSCC SEGMENTASSUME CS:CC,DS:AA,ES:BBSTART: CLD MOV AX ,

16、 AA MOV DS , AX LEA SI , XX MOV AX , SEG YY MOV ES , AX MOV DI , OFFSET YY MOV CX , 6 REP MOVSB MOV AH , 4CH INT 21H CC ENDS END start-U ;查看程序代码 129F:0000 FC CLD129F:0001 B89D12 MOV AX,129D129F:0004 8ED8 MOV DS,AX129F:0006 8D360000 LEA SI,0000129F:000A B89E12 MOV AX,129E129F:000D 8EC0 MOV ES,AX129F:

17、000F BF0000 MOV DI,0000129F:0012 B90600 MOV CX,0006129F:0015 F3 REPZ 129F:0016 A4 MOVSB129F:0017 B44C MOV AH, 4C129F:0019 CD21 INT 21H对应的源程序见文本框中所示。实验二 循环程序设计实验一、实验目的加深对循环程序结构的理解,掌握循环结构程序设计的方法,熟练汇编语言程序上机调试的方法和过程。二、实验设备PC机及相应的软件。三、实验内容及步骤1、编写一个求某数据区内负数个数的汇编语言源程序。要求:在数据区定义若干个字节数据,在数据之后定义一个字单元存放你输入的数据个

18、数,在数据个数之后的单元存放结果。按要求编写汇编语言源程序,并对其进行上机调试,观察运行结果并记录。参考程序:DATA SEGMENT DAT1 DB 61H,12H,78H,9AH,81H,0D6H,00H,56H,.NUM DW $-DAT1RESULT DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,OFFSET DAT1 MOV CX,NUM MOV BL,0LP1: MOV AL,SI TEST AL,80H JE LP2INC BLLP2: INC SI LOOP

19、 LP1 MOV RESULT,BL MOV AH,4CH INT 21HCODE ENDS END START2、修改上述源程序,使其能分别求出数据区中的正数、负数和零的个数。并将结果存放在数据个数后面连续的三个单元。写出源程序并对其进行上机调试,观察运行结果并记录。实验三 TDN86/51教学系统认识实验一、实验目的掌握TDN86/51教学系统的基本操作。二、实验设备TDN86/51教学系统实验箱一台。三、实验内容及步骤1、系统认识实验实验步骤:(1)使用串行通讯电缆将实验系统与PC机相连。(2)将位于线路板右下角的系统状态选择开关拨至86档,开启实验系统。(3)双击PC机桌面上的WMD8

20、6快捷方式图标,进入窗口操作界面。选择对应的串行口号。(4)鼠标点击文件下拉菜单的编辑进入编辑状态。输入并保存源程序,扩展名为*.ASM。参考程序:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DI,3500HMOV CX,0010HMOV AX,0000HSAHFA1: MOV DI,ALINC DIINC AXDAALOOP A1A2: JMP A2CODE ENDS END START(5)对源程序进行汇编、连接,检查无误后,将可执行文件*.EXE装入实验系统。系统装载后提示起

21、始地址为0000:2000。(6)装载完毕后使用U0000:2000命令进行反汇编,检查程序是否正确装入。发现程序有错误或需要调整时,可用A命令修改。(7)分别使用T命令单步运行;用G=0000:2000命令连续运行;用B命令设置断点和GB=0000:2000命令带断点运行。用D命令查看存储单元内容;用E命令修改存储单元内容。2、系统操作练习将内存3500H单元开始的0-15共16个数传送到3600H单元开始的存储区中。参考程序:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODESTART:MOV SI,3

22、500H MOV DI,3600HMOV CX,0008HA1: MOV AX,SIMOV DI,AXINC SIINC SIINC DIINC DI DEC CXJNZ A1A2: JMP A2 CODE ENDS END START实验步骤:(1)编辑程序并检查无误后,经汇编、连接后装入系统。(2)用E3500命令在3500-3510单元中分别装入00、01、02数据。(3)用G=0000:2000命令运行以上程序,按实验系统的复位键返回监控状态。(4)用D3600命令显示结果。实验四 8259中断控制器应用实验一、实验目的1、掌握8259可编程中断控制器的应用编程。2、掌握8259级连方

23、式的使用方法。3、熟悉在系统的实验单元上连接实验电路。二、实验设备1、TDN86/51教学实验系统一台。2、连接导线(排线)若干。三、实验内容及步骤1、8259应用实验(1)实验内容:利用系统的开关KK2产生中断请求信号,接到8259的IRQ7。8259每次响应IRQ7的中断时,显示一个字符“7”,中断10次后停止。实验线路:参考程序:STACK EGMENT STACKDW 4 DUP(?)STACK ENDSCODE GMENTASSUME CS:CODESTART:PUSH DS ;保存数据段MOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ7 ;取中断程序入口

24、地址ADD AX,2000H ;加载时IP=2000HMOV SI,003CH ;填8259中断7的中断矢量MOV SI,AX ;写偏移地址MOV AX,0000H MOV SI,003EHMOV SI,AX ;写段地址CLIPOP DSIN AL,21H ;读8259中断屏蔽字AND AL,7FH ;开放8259中断7OUT 21H,ALMOV CX,000AHA1: CMP CX,0000HJNZ A2IN AL,21H ;读8259中断屏蔽字OR AL,80H ;关8259中断7OUT 21H,ALSTIHLTA2: STIJMP A1IRQ7: MOV AX,0137H ;中断程序入口

25、INT 10HMOV AX,0120H ;产生空格INT 10HDEC CXMOV AL,20H ;发中断结束命令OUT 20H,ALCLIIRET CODE ENDS END START实验步骤:(1)接线:8259的IRQ7连接开关KK2。(2)编辑程序并检查无误后,经汇编、连接后装入系统。(3)G=0000:2000运行程序,按动开关KK2,观察屏幕的显示情况。 结果:按动开关KK2,屏幕上以字符“7”来响应,直到按动开关KK2 10次后系统处于停机状态。系统复位后返回监控状态。2、 8259应用实验(2)实验内容:利用系统的开关KK1和KK2产生中断请求信号,分别接到8259的IRQ6

26、和IRQ7。当无中断请求时执行主程序,延时显示“main”,当有中断请求时则执行其中断服务程序,显示对应的中断号“6”或“7”;在执行低级中断服务程序中允许再响应高级的中断。试验线路:参考程序:STACK SEGMENT STACK ;定义堆栈段DW 64 DUP(?)STACK ENDSDATA SEGMENT ;定义数据段TABLE DB 4DH,41H,49H,4EH,20H,00HDATA ENDS CODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;主程序开始MOV DS,AXPUSH DSMOV AX,0000H

27、MOV DS,AXMOV AX,OFFSET IRQ6;取中断程序入口地址ADD AX,2000H ;加载时IP=2000HMOV SI,0038H ;填8259中断6的中断矢量MOV SI,AX ;写偏移地址MOV AX,0000HMOV SI,003AHMOV SI,AX ;写段地址MOV AX,OFFSET IRQ7 ;取中断程序入口地址ADD AX,2000H ;加载时IP=2000HMOV SI,003CH ;填8259中断7的中断矢量MOV SI,AX ;写偏移地址MOV AX,0000H MOV SI,003EHMOV SI,AX ;写段地址POP DSMOV AL,13H ;I

28、CW1OUT 20H,ALMOV AL,08H ;ICW2OUT 21H,ALMOV AL,09H ;ICW4OUT 21H,ALMOV AL,3DH ;开放8259中断6、7、1OUT 21H,ALSTIA1: MOV CX,0007HMOV AX,010DHINT 10H ;回车换行A2: MOV AH,06H MOV BX,OFFSET TABLE ;取数据段中ASCII码存放地址INT 10H ;显示字符串“MAIN”CALL DALLY ;调用延时子程序LOOP A2JMP A1 ;到7次换行IRQ6: STI ;8259中断6程序入口CALL DALLYMOV AX,0136H ;显示“6”INT 10HMOV AL,20H ;显示空格OUT 20H,ALIRET ;中断返回IRQ7: STI ;8259中断7程序入口CALL DALLYMOV AX,0137H ;显示“7”INT 10HMOV AL,20H ;显示空格OUT 20H,ALIRET ;中断返回

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

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