- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第6讲1.doc
※ 第五讲 ※
第四节 数据传送类指令(29条)
功能:将源操作数传送给目的操作数(堆栈操作特殊),指令执行后,源操作数不变,目的操作数被源操作数取代。数据传送类指令用到的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP8种。
源操作数可采用寄存器、寄存器间接、直接、立即、变址5种寻址方式寻址,目的操作数可以采用寄存器、寄存器间接、直接寻址3种寻址方式。
在此类指令中:
■ 片内RAM之间的数据传送使用MOV指令;
■ 片内RAM与片外RAM之间的数据传送使用MOVX指令且必须经过A;
■ 程序存储器与A(只能与A,只读)之间的数据传送使用MOVC指令;
■ 堆栈操作使用POP、PUSH指令;
■ 数据交换使用XCH、XCHD、SWAP指令。
通用数据传送指令
(片内RAM之间的数据传送指令,以下中direct可以是片内RAM中的任一单元,包括SFR)
1. 立即数传送到片内RAM
MOV A, #data
MOV direct, #data
MOV Rn, #data
MOV @Ri, #data
MOV DPTR, #data16
2. 片内RAM与A之间的数据传送
MOV A, Rn
MOV Rn, A
MOV A, direct
MOV direct, A
MOV A, @Ri
MOV @Ri, A
3. 片内RAM单元之间的数据传送
MOV direct1, direct2
MOV direct, Rn
MOV Rn, direct
MOV direct, @Ri
MOV @Ri, direct
二、片外RAM与片内RAM之间的数据传送
1. 用DPTR间址(遍访片外RAM的64K空间)
MOVX A, @DPTR
MOVX @DPTR, A
2. 用Ri间址(限于片外RAM的0000H~00FFH,少用)
MOVX A, @Ri
MOVX @Ri, A
注:使用上述指令之前,必须将片外RAM的地址先赋给相应的间址寄存器。
三、程序存储器与A之间的数据传送(只读)
MOVC @A+DPTR
MOVC @A+PC
结合变址寻址讲述查表等应用。
四、堆栈操作指令
1. 进栈指令(压栈、入栈)
PUSH direct
2. 出栈指令(弹出)
POP direct
注意:⑴ 执行堆栈操作指令时SP的内容自动变化(自动加1或自动减1);
⑵ 入栈与出栈次序要一一对应。(举例)
五、数据交换指令
1. 整字节交换指令
XCH A, @Ri
XCH A, Rn
XCH A, direct
解释其与数据传送指令的差异。
2. 半字节交换指令(高低4位对应交换)
XCHD A, @Ri
3. 累加器A高低4位交换指令
SWAP A
第五节 逻辑操作类指令(24条)
MCS-51中的逻辑操作包括:逻辑与、逻辑或、逻辑非(取反)、逻辑异或、移位、清零等。(说明6种逻辑运算——与、或、非、同或、异或、蕴含)
一、逻辑与运算指令(按位与)
ANL A, Rn
ANL A, direct
ANL A, @Ri
ANL A, #data
ANL direct, A
ANL direct, #data
逻辑与运算可以实现对某些位的“屏蔽”作用,保证数据状态的可靠(举10位A/D转换结果的例子)。
二、逻辑或运算指令(按位或)
ORL A, Rn
ORL A, direct
ORL A, @Ri
ORL A, #data
ORL direct, A
ORL direct, #data
逻辑或运算具有“置位”的作用。
三、逻辑异或运算指令(按位异或)
异或运算规则:相同为0、相异为1。即:
0 0 = 0 1 1 = 0
0 1 = 1 1 1 = 1
XRL A, Rn
XRL A, direct
XRL A, @Ri
XRL A, #data
XRL direct, A
XRL direct, #data
欲对某位取反,可将此位与“1”异或;欲对整个字节取反
文档评论(0)