- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学计算机硬件实验答案
指令系统和汇编语言程序设计实验
3.2 指令系统实验
实验一 熟悉键盘操作及数传指令编程设计
实验目的
熟悉软件模拟调试的环境及键盘操作。
掌握汇编语言程序设计的方法,加深对指令的理解。
学会软件模拟调试和察看修改观察项的方法。
实验内容
印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
三、实验步骤
进入调试软件环境,输入源程序;
汇编源程序;
用单步方式运行程序;
检查并记录各寄存器和存储单元内容的变化。
四、程序清单
内部RAM数据传送
1)寄存器寻址与立即寻址,需要查看的数据有A、PSW和不同寄存器区的Rn等单元的内容。
ORG 0000H
MOV PSW,#00H;
MOV R0,#30H;(R0)=30H
MOV A,R0;(A)=30H
MOV R6,A;(R6)=30H
MOV PSW,#14H
MOV R0,#30H;(R0)=30H
MOV A,R0;
MOV R6,A; (R6)=30H
MOV PSW,#10H;
MOV R0,#30H; (R0)=30H
MOV A,R0;(A)=30H
MOV R6,A;(R6)=30H
MOV PSW,#08H;
MOV R0,#30H;(R0)=30H
MOV A,R0
MOV R6,A;(R6)=30H
SJMP $
END
2) 直接寻址,需查看30H、31H、32H、40H、ACC、PSW等单元的内容。
ORG 0100H
MOV 30H,#45H;(30H)=45H
MOV 31H,#46H; (31H)=46H
MOV 02H,31H;(R2)=46H
MOV 0E0H,30H;(A)=45H
MOV 32H,ACC; (32H)=45H
MOV ACC,PSW;(A)=01H
MOV 40H,ACC;(40H)=01H
SJMP $
END
3)寄存器间接寻址,需查看@R0、RO等的内容。
ORG 0200H
MOV 30H,#66H; (30H)=66H
MOV R0,#30H; (R0)=30H
MOV @R0,#30H; (30H)=30H
SJMP $
END
外部数据传送
需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。
ORG 0000H
MOV A,#89H;(A)=89H
MOV DPTR,#2000H
MOVX @DPTR,A;((DPTR))=89H=(2000H)
INC DPTR;(DPTR)=2001H
CLR A
MOVC A,@A+DPTR;(A)=78H
SJMP $
ORG 2000H
DB 44H
DB 78H
DB 67H
END
堆栈操作
需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执行后的变化情况和数据的存放次序等。
1)可用于保护现场和恢复现场的程序
ORG 0000H
MOV SP,#5FH;(SP)=5FH
MOV 50H,#3BH;(50H)=3BH
MOV 51H,#2FH;(51H)=2FH
MOV A,#12H;(A)=12H
PUSH 50H;(60H)=3BH
PUSH 51H;(61H)=2FH
PUSH ACC;(62H)=(ACC)=12H
POP 0E0H;(OEOH)=(62H)=(ACC)=12H
POP 51H;(51H)=(61H)=2FH
POP 5
文档评论(0)