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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机硬件.docx

1、计算机硬件实验一 熟悉键盘操作及数传指令编程设计一、 实验目的1 熟悉软件模拟调试的环境及键盘操作。2 掌握汇编语言程序设计的方法,加深对指令的理解。3 学会软件模拟调试和察看修改观察项的方法。二、 实验内容印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。 三、实验步骤1 进入调试软件环境,输入源程序;2 汇编源程序;3 用单步方式运行程序;4 检查并记录各寄存器和存储单元内容的变化。四、程序清单1. 内部RAM数据传送1)寄存器寻址与立即寻址,需要查看的数据有A、PSW和不同寄存器区的Rn等

2、单元的内容。ORG 0000HMOV PSW,#00H MOV R0,#30H MOV A,R0 MOV R6,A MOV PSW,#14HMOV R0,#30H MOV A,R0 MOV R6,AMOV PSW,#10HMOV R0,#30H MOV A,R0 MOV R6,AMOV PSW,#08HMOV R0,#30H MOV A,R0 MOV R6,A SJMP $ END程序运行结果如下:01ORG 0000H02MOV PSW,#00H03MOV R0,#30Hr0=0x3004MOV A,R0a=0x3005MOV R6,Ar6=0x3006MOV PSW,#14Hr0=0x00

3、r6=0x00psw=0x14ov=1rs=207MOV R0,#30Hr0=0x3008MOV A,R009MOV R6,Ar6=0x3010MOV PSW,#10Hpsw=0x10ov=011MOV R0,#30H12MOV A,R013MOV R6,A14MOV PSW,#08Hr0=0x00r6=0x00psw=0x08rs=115MOV R0,#30Hr0=0x3016MOV A,R017MOV R6,Ar6=0x3018SJMP $19END 2) 直接寻址,需查看30H、31H、32H、40H、ACC、PSW等单元的内容。 ORG 0100HMOV 30H,#45H MOV 31

4、H,#46H MOV 02H,31H MOV 0E0H,30H MOV 32H,ACC MOV ACC,PSW MOV 40H,ACC SJMP $ END程序运行结果如下:30H31H32H40HACCPSW01ORG 0100H000000000x000x0002MOV 30H,#45H450000000x000x0003MOV 31H,#46H454600000x000x0004MOV 02H,31H454600000x000x0005MOV 0E0H,30H454600000x450x0106MOV 32H,ACC454645000x450x0107MOV ACC,PSW4546450

5、00x010x0108MOV 40H,ACC454645010x010x0109SJMP $454645010x010x0110END454645010x010x01 3)寄存器间接寻址,需查看R0、RO等的内容。 ORG 0200H MOV 30H,#66H MOV R0,#30H MOV R0,#30H SJMP $ END程序运行结果如下:R0RO01ORG 0200H02MOV 30H,#66H03MOV R0,#30H0x3004MOV R0,#30H3005SJMP $外部数据传送需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。ORG 0000H MOV

6、 A,#89H MOV DPTR,#2000H MOVX DPTR,A INC DPTRCLR A MOVC A,A+DPTR SJMP $ ORG 2000H DB 44H DB 78H DB 67H END程序运行结果如下:ORG 0000H2000H2001H01MOV A,#89H007802MOV DPTR,#2000H007803MOVX DPTR,A007804INC DPTR897805CLR A897806MOVC A,A+DPTR897807SJMP $897808ORG 2000H897809DB 44H897810DB 78H897811DB 67H897812END8

7、9782、 堆栈操作需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执行后的变化情况和数据的存放次序等。1)可用于保护现场和恢复现场的程序ORG 0000H MOV SP,#5FHMOV 50H,#3BHMOV 51H,#2FHMOV A,#12H PUSH 50H PUSH 51H PUSH ACCPOP 0E0H POP 51H POP 50H SJMP $ END50H51H60H61H62H81HASP01ORG 0000H0000000000070x000x0002MOV SP,#5FH00000000005F0x000x5f03MOV 50H,#3B

8、H5B000000005F0x000x5f04MOV 51H,#2FH3B2F0000005F0x000x5f05MOV A,#12H3B2F0000005F0x120x5f06PUSH 50H3B2F3B0000600x120x6007PUSH 51H3B2F3B2F00610x120x6108PUSH ACC3B2F3B2F00620x120x6209POP 0E0H3B2F3B2F12610x120x6110POP 51H3B2F3B2F12600x120x6011POP 50H3B2F3B2F125F0x120x5f12SJMP $3B2F3B2F125F0x120x5f13END3B

9、2F3B2F125F0x120x5f 2)可用于数据交换的程序ORG 0100H MOV SP,#6FHMOV 50H,#3BHMOV 51H,#2FH PUSH 50H PUSH 51H POP 50H POP 51H SJMP $ END50H51H70H71H81HASP01ORG 0100H00000000000x000x0702MOV SP,#6FH000000006F0x000x6f03MOV 50H,#3BH3B0000006F0x000x6f04MOV 51H,#2FH3B2F00006F0x000x6f05PUSH 50H3B2F3B00700x000x7006PUSH 51

10、H3B2F3B2F710x000x7107POP 50H2F2F3B2F700x000x7008POP 51H2F3B3B2F6F0x000x6f4.数据交换 记录每条指令运行后的结果,从而加深对各种不同的交换指令的理解。A01ORG 0000H0002MOV A,#58H5803SWAP A8504MOV 40H,A8505SJMP $8506END85 1)SWAP指令 ORG 0000H MOV A,#58H SWAP A MOV 40H,A SJMP $ ENDSWAP A: 指令的作用是让A中数据的高四位和低四位交换位置 2) XCHD 指令 R0A01ORG 0030H0x000x

11、0002MOV A,#30H0x000x3003MOV R0,#30H0x300x3004MOV R0,#09H0x300x3005XCHD A,R00x300x3906MOV 41H,A0x300x3907SJMP $0x300x3908END 0x300x39 ORG 0030H MOV A,#30H MOV R0,#30H MOV R0,#09H XCHD A,R0 MOV 41H,A SJMP $ ENDXCHD A,R0: 是半字节交换指令,累加器A的低4 位和内存的低4 位交换. 3)XCH 指令 ORG 0100H MOV 50H,#1 MOV A,#89H XCH A,50H

12、MOV R7,#3 XCH A,R7 XCH A,R0 SJMP $ END50HAR0R701ORG 0100H000x000x000x0002MOV 50H,#1010x000x000x0003MOV A,#89H 010x890x000x0004XCH A,50H890x010x000x0005MOV R7,#3890x010x000x0306XCH A,R7890x030x000x0107XCH A,R0890x000x030x0108SJMP $ 09END五、 思考题1、 寄存器寻址与寄存器间接寻址有什么区别? 答:寄存器寻址中寄存器存放操作数;寄存器间接寻址中寄存器存放操作数所在

13、的地址。2、 PC指针与SP指针有什么区别? 答:PC指针是16位存储器,指向即将执行的命令的栈顶;SP指针是8位寄存器,指栈顶。3、 DPTR指针与Ri(R0,R1)指针有什么区别?答:DPTR指片外的64KB数据范围;Ri指针指片内00H7FH数据范围,只有配合P2使用才可寻址片外64KB外围地址。4、 立即寻址与直接寻址有什么区别? 答:立即寻址是指令直接给出操作数;直接寻址是指令中直接给出操作数所在的单元地址或位地址。5、 同一个特殊功能寄存器不同表达形式。答:在直接寻址时,寄存器ACC可以表示为 ACC、OEOH,Cy、0D7H、PSW.7、0D0H.7都可以表示Cy,PSW可以表示

14、为0D0H。6、 三种不同的交换指令的区别是什么? 答:XCH:把A与片内RAM的某单位或SFR中的内容相互交换,影响P标志;XHD:把A的低四位与片内RAM的低4位交换,高四位不变;SWAP:A中低四位与高四位互换,不影响标志位。实验二 数传指令程序设计一、 实验目的1 掌握数据块的传送操作和算术运算指令的应用。2 进一步掌握汇编语言设计和调试方法。3 掌握观察窗口的使用方法。4 学会给存储单元赋初值的方法。二、 实验内容1、把内部RAM 40H4FH置初值0A0H0AFH;2、而后把40H4FH内容传送到外部RAM 9800H980FH中;3、再把 9800H980FH内容传送到 50H5

15、FH中。三、 实验步骤1 分别用单步和连续运行方式,调试上述程序;2 在观察窗口中观察结果。四、 实验程序清单数据块传送参考程序: ORG 0000H MAIN: MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1: MOV R0, A INC R0 INC A DJNZ R2, A1 MOV R0, #40H MOV DPTR, #9800H MOV R2, #10H A2: MOV A, R0 MOVX DPTR, A INC R0 INC DPTR DJNZ R2, A2 MOV R0, #50H MOV DPTR, #9800H MOV R2, #10H A3

16、: MOVX A, DPTR MOV R0, A INC DPTR INC R0 DJNZ R2, A3 SJMP $ END 01ORG 0000HR0r2A40H9800HDPTR50H02MOV R0,#40H0x4003MOV R2,#10H0x1004MOV A,#0A0HA005A1: MOV R0, A A006INC R00x4107INC A A108DJNZ R2, A109MOV R0, #40H0x0010MOV DPTR, #9800H980011MOV R2, #10H0x1012A2:MOV A, R00xA013MOVX DPTR, AA014INC R0 0x

17、4115INC DPTR 980116DJNZ R2, A2 17MOV R0, #50H 0x5018MOV DPTR, #9800H 980019MOV R2, #10H0x1020A3:MOVX A, DPTR0xA021MOV R0, A A022INC DPTR 980123INC R00x5124DJNZ R2, A30x0FA1:05-08进行16次循环,每次分别为内部40H4FH置初值0A0H0AFH。第二次循环:R0R2A41H05A1: MOV R0, A0x0f06INC R0A107INC A0x4208DJNZ R2, A1A2第十六次循环:R0R2A4FH05A1:

18、 MOV R0, A0x0106INC R0AF07INC A0x5008DJNZ R2, A1B0达到的结果为:40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FHA0A1A2A3A4A5A6A7A8A9AAABACADAEAFA2:12-16循环16次,分别把40H4FH内容传送到外部RAM 9800H980FH中第八次循环:R2R0ADPTR9808H12A2: MOV A, R00xA813MOVX DPTR, AA814INC R00x4915INC DPTR980916DJNZ R2, A20x07第十六次循环: R2R0ADPTR980

19、FH12A2: MOV A, R00xAF13MOVX DPTR, AAF14INC R00x5015INC DPTR981016DJNZ R2, A20x00达到的结果:9800H9801H9802H9803H9804H9805H9806H9807HA0A1A2A3A4A5A6A72808H9809H980AH980BH980CH980DH980EH980FHA8A9AAABACADAEAFA3:20-24循环16次,再再把 9800H980FH内容传送到 50H5FH中。第八次循环: R2R0ADPTR58H20A3:MOVX A, DPTR0xa821MOV R0, A A822INC

20、DPTR 980923INC R00X5924DJNZ R2, A30X07第十六次循环: R2R0ADPTR5FH20A3:MOVX A, DPTR0Xaf21MOV R0, A AF22INC DPTR 981023INC R00x6024DJNZ R2, A30x00 达到的结果:50H51H52H53H54H55H56H57HA0A1A2A3A4A5A6A758H59H5AH5BH5CH5DH5EH5FHA8A9AAABACADAEAF五、思考题1) 若两个数据块都在外部数据存储器中,如何实现数据块的传送? 答:选择R0和DPTR两个指针,用MOVX命令经过A累加器进行数据块传输。2)

21、 在调试程序时,若不用程序给40H4FH赋初值,而用键盘在CPU DATA区给40H4FH单元预赋初值,如何做?答:打开“视图”菜单,选择“存储器窗口”,弹出存储器对话框,在MEMORY2地址栏中键入“D:0X00”回车,建立内部数据存储器的观察窗口。找到40H4FH所在位置,分别双击40H4FH所在位置,当有光标出现时,用键盘输入初值。实验三 算数运算指令编程设计一、 实验目的1、 掌握算术运算指令及其应用。2、 进一步掌握汇编语言设计和调试方法。3、 掌握观察窗口的使用方法。4、 学会给存储单元赋初值的方法。二、 实验内容1、求两个无符号数求和及差;2、求两个带符号数求和及差;3、求两个压

22、缩的BCD码数的和及差。三、实验步骤1.分别用单步和连续运行方式,调试上述各个程序;2.在观察窗口中观察结果。四、实验程序清单 1、计算下面各式中两个无符号数的和及差,观察CY,并记录运算结果,并求出结果的真值。(1)计算200+200(2)计算 36589+46542(3)计算 100-200及200-100(4)计算 36589-16542及16542-36589 1)加法的参考程序: (1)计算两个单字节数的和的参考程序: ORG 0000H MAIN: MOV A,#200 ADD A,#200 SJMP $ENDCYA01ORG 0000H02MAIN: MOV A,#20000xc803ADD A,#20010x90结果 0x90的真值为400. (2)计算两个双字节数的和的参考程序: ORG 0100H MAIN: MOV A,#low(36589) ADD A,# low(46542) MOV 30H,A MOV A,

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

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