欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    南昌大学微型计算机原理与接口技术实验报告(全).doc

    • 资源ID:2881866       资源大小:102.50KB        全文页数:25页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    南昌大学微型计算机原理与接口技术实验报告(全).doc

    实验一:汇编语言程序设计开发环境实验目的1、熟悉汇编语言设计开发环境2、巩固对程序基本结构的认识3、学会使用debug命令查看结果实验步骤:1、打开电脑在系统选择界面,选择DOS操作系统2、通过键盘输入TC,进入TC操作界面。在TC操作见面,新建文件,将实验程 序写入文件中,然后保存为.ASM文件。退出TC操作界面3在DOS操作界面,写入MASM,和刚才的ASM文件名。产生目标文件。4、调用link文件,链接目标文件,产生可执行文件5、再键入debug 12.exe(12为对应文件的文件名)来运行程序。我们的目的是要察看我们程序的运行结果,因此我们希望的动程序运行后应停在返回DOS以前,为此我们可先用反汇编命令U来确定我们所要的断点地址。编写汇编程序,实现Z=X+;程序如下:DATA SEGMENT X DB 18H Y DB 19H Z DB ?DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV AL,XADD AL,Y DAA MOV Z,ALRETMAIN ENDPCODE ENDSEND START先退出DOS系统。先输入MASM 12.ASM后,看有没有错误,如果有错误就返回去修改程序,反复调试,直到没有错误为止。再输入LINK 12.OBJ再输入DEBUG 12.exe再按U。设置好断点以后再输入G加断点地址。实验结果-u1489:0000 1E PUSHDS 1489:0001 2BC0 SUBAX,AX 1489:0003 50 PUSHAX 1489:0004 B88814 MOVAX,1488 1489:0007 8ED8 MOVDS,AX 1489:0009 A00000 MOVAL,0000 1489:000C 02060100 ADDAL,0001 1489:0010 27 DAA 1489:0011 A20200 MOV0002,AL 1489:0014 CB RETF 1489:0015 D1E3 SHLBX,1 1489:0017 D1E3 SHLBX,1 1489:0019 8B360406 MOVSI,0604 1489:001D EBA2 JMPFFC1 1489:001F 90 NOP -u1489:0020 C746FC0000 MOVWORD PTR BP-04,0000 1489:0025 EB1F JMP0046 1489:0027 90 NOP 1489:0028 8A4608 MOVAL,BP+08 1489:002B 2AE4 SUBAH,AH 1489:002D 50 PUSHAX 1489:002E 8B5EFC MOVBX,BP-04 1489:0031 D1E3 SHLBX,1 1489:0033 D1E3 SHLBX,1 1489:0035 8B7604 MOVSI,BP+04 1489:0038 FF7002 PUSHBX+SI+02 1489:003B FF30 PUSHBX+SI 1489:003D E854FE CALLFE94 -g0014AX=1437 BX=0000 CX=0025 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000 DS=1488 ES=1478 SS=1488 CS=1489 IP=0014 NV UP EI PL NZ AC PO NC 1489:0014 CB RETF -d1488:00001488:0000 18 19 37 00 00 00 00 00-00 00 00 00 00 00 00 00 .7.1488:0010 1E 2B C0 50 B8 88 14 8E-D8 A0 00 00 02 06 01 00 .+.P.1488:0020 27 A2 02 00 CB D1 E3 D1-E3 8B 36 04 06 EB A2 90 '.6.1488:0030 C7 46 FC 00 00 EB 1F 90-8A 46 08 2A E4 50 8B 5E .F.F.*.P.1488:0040 FC D1 E3 D1 E3 8B 76 04-FF 70 02 FF 30 E8 54 FE .v.p.0.T.1488:0050 83 C4 06 FF 46 FC 8B 46-06 39 46 FC 72 DA 5E 8B .F.F.9F.r.1488:0060 E5 5D C3 90 55 8B EC 56-C4 5E 04 26 80 7F 04 03 .U.V.&.1488:0070 75 07 26 80 7F 0A 00 74-37 A1 58 27 39 06 36 22 u.&.t7.X'9.6"-q实验心得:这是我第一次在pc机上运用DOS系统来编程,有很多不懂,感觉很陌生。在进入TC,和文件的保存,以及程序的编译都感觉很陌生。但是有了这一次的接触,以后会更轻松。这次主要是熟悉了汇编的环境,对于程序来说,只要熟悉了汇编语言的基本环境,本次程序比较简单。运行的结果很顺利。实验二、字符串的传送一、 实验目的:1. 掌握变量的基本使用方法。2. 掌据字符串的输入传送方法的使用。3. 掌握数据段的定义方式二、实验内容编程实现将X中的40个字符存储在Y中,并调试程序。三、实验程序如下:DATA SEGMENTX DB 40 DUP(B)DATA ENDSEXTRA SEGMENTY DB 40 DUP (?)EXTRA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,ES:EXTRASTART: PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV AX,EXTRA MOV ES,AX LEA SI,X LEA DI,Y CLD MOV CX,40 REP MOVSB RETMAIN ENDPCODE ENDSEND START四、实验结果先退出DOS系统。先输入MASM 12.ASM后,看有没有错误,如果有错误就返回去修改程序,反复调试,直到没有错误为止。再输入LINK 12.OBJ再输入DEBUG 12.exe再按U。设置好断点以后再输入G加断点地址。查看数据段是输入D1488:0000显示结果:-u148C:0000 1E PUSHDS 148C:0001 2BC0 SUBAX,AX 148C:0003 50 PUSHAX 148C:0004 B88814 MOVAX,1488 148C:0007 8ED8 MOVDS,AX 148C:0009 B88A14 MOVAX,148A 148C:000C 8EC0 MOVES,AX 148C:000E 8D360000 LEASI,0000 148C:0012 8D3E0000 LEADI,0000 148C:0016 B91300 MOVCX,0013 148C:0019 FC CLD 148C:001A F3 REPZ 148C:001B A4 MOVSB 148C:001C CB RETF 148C:001D DA5E8B FICOMPDWORD PTR BP-75 -u148C:0020 E55D INAX,5D 148C:0022 C3 RET 148C:0023 90 NOP 148C:0024 55 PUSHBP 148C:0025 8BEC MOVBP,SP 148C:0027 56 PUSHSI 148C:0028 C45E04 LESBX,BP+04 148C:002B 26 ES: 148C:002C 807F0403 CMPBYTE PTR BX+04,03 148C:0030 7507 JNZ0039 148C:0032 26 ES: 148C:0033 807F0A00 CMPBYTE PTR BX+0A,00 148C:0037 7437 JZ0070 148C:0039 A15827 MOVAX,2758 148C:003C 39063622 CMP2236,AX -g001cAX=148A BX=0000 CX=0000 DX=0000 SP=FFFC BP=0000 SI=0013 DI=0013 DS=1488 ES=148A SS=1488 CS=148C IP=001C NV UP EI PL ZR NA PE NC 148C:001C CB RETF -d1488:00001488:0000 50 45 52 53 4F 4E 41 4C-20 43 4F 4D 50 55 54 45 PERSONAL COMPUTE1488:0010 52 24 00 00 00 00 00 00-00 00 00 00 00 00 00 00 R$.1488:0020 50 45 52 53 4F 4E 41 4C-20 43 4F 4D 50 55 54 45 PERSONAL COMPUTE1488:0030 52 24 00 00 00 00 00 00-00 00 00 00 00 00 00 00 R$.1488:0040 1E 2B C0 50 B8 88 14 8E-D8 B8 8A 14 8E C0 8D 36 .+.P.61488:0050 00 00 8D 3E 00 00 B9 13-00 FC F3 A4 CB DA 5E 8B .>.1488:0060 E5 5D C3 90 55 8B EC 56-C4 5E 04 26 80 7F 04 03 .U.V.&.1488:0070 75 07 26 80 7F 0A 00 74-37 A1 58 27 39 06 36 22 u.&.t7.X'9.6"-d148a:0000148A:0000 50 45 52 53 4F 4E 41 4C-20 43 4F 4D 50 55 54 45 PERSONAL COMPUTE148A:0010 52 24 00 00 00 00 00 00-00 00 00 00 00 00 00 00 R$.148A:0020 1E 2B C0 50 B8 88 14 8E-D8 B8 8A 14 8E C0 8D 36 .+.P.6148A:0030 00 00 8D 3E 00 00 B9 13-00 FC F3 A4 CB DA 5E 8B .>.148A:0040 E5 5D C3 90 55 8B EC 56-C4 5E 04 26 80 7F 04 03 .U.V.&.148A:0050 75 07 26 80 7F 0A 00 74-37 A1 58 27 39 06 36 22 u.&.t7.X'9.6"148A:0060 72 14 BE 36 22 8B 1C FF-04 2B D8 D1 E3 D1 E3 8B r.6".+.148A:0070 36 04 06 EB 10 90 BE 36-22 8B 1C FF 04 D1 E3 D1 6.6".-q实验心得:这次是做字符串传送的实验这套程序在课堂上讲过,所以编程序的时候也比较轻松。在调试阶段要注意,本次调试我的断点设置出错,所以导致了输出结果的错误,这个问题以后应该注意,要知道自己所需要的断点在哪。不能搞错,否则输出的结果就会有问题。还有就是输入程序的时候要小心,不能按错键,如果按错了键,在编译的时候会错,要返回去tc中改程序,调试程序的时候耐心也是很重的实验三、键盘输入与回显实验目的:1、熟悉DOS功能的9号功能,从键盘输入并在显示器上显示字符串2、熟悉DOS功能调用指令INT21H 实验原理:1、单字符输入功能号1、7和8都可以接收键盘输入的单字符串,输入字符以ASCII码形式 存放在累加器AL中。其中7号和8号功能无回显。2、字符串输入输入字符串可以通过调用DOS功能的0AH号功能实现。3、单宇符显示在显示器上显示的内容都是字符形式,如果是数字,则一定是其对应的ASCII 码。要将一个字符串送到显示器显示,可调用DOS功能的2、6、9号功能实现。其中2、6用于显示单个字符,功能9显示一个字符帀。4、字符中显示要在从示器上显示字符串,可调用DOS功能的9号功能,该功能要求被显示的字符串必须“$”以字符作为结束符,否则会引起屏幕混乱。5、返回DOS用 4CH号功能返回DOS的程序段:MOV AH,4CHINT 21H 实验内容:从键盘读入一串字符,在字符串尾插入一个“$”,并显示该字符。实验程序如下:DATA SEGMENTBUFSIZE DB 50ACTLEN DB ?CHARS DB 50 DUP(20H)DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX,BUFSIZE MOV AH,0AH INT 21H XOR CX,CX MOV CL,ACTLEN MOV DX,OFFSET CHARS MOV BX,DX ADD BX,CX MOV BYTE PTRBX,'$' MOV AH,09H INT 21H MOV AH,02H MOV DL,0AH INT 21H MOV DL,0DH INT 21H MOV AH,09H LEA DX,CHARS INT 21H MOV AH,4CH INT 21H MAIN ENDP CODE ENDS END START实验结果:随机输入一串不超过50个字符的字符串,按enter键之后,字符串会重新显示。在屏幕上。屏幕显示为:1D08:0000 1E PUSHDS 1D08:0001 2BC0 SUBAX,AX 1D08:0003 50 PUSHAX 1D08:0004 B8041D MOVAX,1D04 1D08:0007 8ED8 MOVDS,AX 1D08:0009 8D160000 LEADX,0000 1D08:000D B40A MOVAH,0A 1D08:000F CD21 INT21 1D08:0011 33C9 XORCX,CX 1D08:0013 8A0E0100 MOVCL,0001 1D08:0017 BA0200 MOVDX,0002 1D08:001A 8BDA MOVBX,DX 1D08:001C 03D9 ADDBX,CX 1D08:001E C60724 MOVBYTE PTR BX,24 -U1D08:0021 B409 MOVAH,09 1D08:0023 CD21 INT21 1D08:0025 B402 MOVAH,02 1D08:0027 B20A MOVDL,0A 1D08:0029 CD21 INT21 1D08:002B B20D MOVDL,0D 1D08:002D CD21 INT21 1D08:002F B409 MOVAH,09 1D08:0031 8D160200 LEADX,0002 1D08:0035 CD21 INT21 1D08:0037 B44C MOVAH,4C 1D08:0039 CD21 INT21 1D08:003B 00740D ADDSI+0D,DH 1D08:003E FF360406 PUSH0604 -G37CHENLIHUAGDAKSGCHENLIHUAGDAKSGAX=0924 BX=0011 CX=000F DX=0002 SP=FFFC BP=0000 SI=0000 DI=0000 DS=1D04 ES=1CF4 SS=1D04 CS=1D08 IP=0037 NV UP EI PL NZ AC PE NC 1D08:0037 B44C MOVAH,4C -Q实验心得体会: 本次试验因为还没有学过,对DOS系统的功能的调用很陌生。所以本次编程的时候感觉很痛苦,编程的时候对着书看了很长时间,才慢慢的知道实验程序的编写。在实验室悟了好长时间才悟懂DOS功能的调用显示和地址的灵活用法。我忘了一“$”,所以电脑一直在那里响。最后我加上“$”符号后,程序才顺利执行完。这次实验做得很艰难,一开始有很多迷惑,经过实践之后迷惑就消除了。实验四:子程序设计(计算N!)实验目的:1、通过调用求N!的子程序求一个数的阶乘2、掌握子程序的设计方法,调用方法,返回方法3、学会一种算法:递归调用实验内容:堆栈保护及递归算法,用递归算法计算5!,实验程序如下: DATA SEGMENTN DW 5RESULT DW ?DATA ENDSSTACKSEG SEGMENTDW 128 DUP(0)TOS LABEL WORDSTACKSEG ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,SS:STACKSEGSTART:MOV AX,STACKSEG MOV SS,AX MOV SP,OFFSET TOS PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,N PUSH BX CALL FACT POP RESULT RETMAIN EDNPFACT PROC NEAR PUSH AX PUSH BP MOV BP,SP MOV AX,BP+6 CMP AX,0 JNZ FACT1 INC AX JMP EXITFACT1:DEC AX PUSH AX CALL FACT POP AX MUL BP+6EXIT:MOV BP+6,AX POP BP POP AX RETFACT ENDPCODE ENDS END START实验结果先退出DOS系统。先输入MASM 12.ASM后,看有没有错误,如果有错误就返回去修改程序,反复调试,直到没有错误为止。再输入LINK 12.OBJ再输入DEBUG 12.exe再按U。设置好断点以后再输入G加断点地址。查看数据段是输入D:DS 0结果显示:-u13E1:0000 B8D113 MOVAX,13D1 13E1:0003 8ED0 MOVSS,AX 13E1:0005 BC0001 MOVSP,0100 13E1:0008 1E PUSHDS 13E1:0009 2BC0 SUBAX,AX 13E1:000B 50 PUSHAX 13E1:000C B8D013 MOVAX,13D0 13E1:000F 8ED8 MOVDS,AX 13E1:0011 8B1E0000 MOVBX,0000 13E1:0015 53 PUSHBX 13E1:0016 E80500 CALL001E 13E1:0019 8F060200 POP0002 13E1:001D CB RETF 13E1:001E 50 PUSHAX 13E1:001F 55 PUSHBP -u13E1:0020 8BEC MOVBP,SP 13E1:0022 8B4606 MOVAX,BP+06 13E1:0025 3D0000 CMPAX,0000 13E1:0028 7504 JNZ002E 13E1:002A 40 INCAX 13E1:002B EB0A JMP0037 13E1:002D 90 NOP 13E1:002E 48 DECAX 13E1:002F 50 PUSHAX 13E1:0030 E8EBFF CALL001E 13E1:0033 58 POPAX 13E1:0034 F76606 MULWORD PTR BP+06 13E1:0037 894606 MOVBP+06,AX 13E1:003A 5D POPBP 13E1:003B 58 POPAX 13E1:003C C3 RET 13E1:003D 7421 JZ0060 13E1:003F 8B9E72FF MOVBX,BP+FF72 -g001dAX=13D0 BX=0003 CX=014D DX=0000 SP=00FC BP=0000 SI=0000 DI=0000 DS=13D0 ES=13C0 SS=13D1 CS=13E1 IP=001D NV UP EI PL NZ NA PE NC 13E1:001D CB RETF

    注意事项

    本文(南昌大学微型计算机原理与接口技术实验报告(全).doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开