- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[物理]uC 2012 Ch3-2传送类指令_sxj
3.3 MCS-51的指令集 按功能,分 5 类 3.3.1 数据传送类指令 3.3.2 算术运算类指令 3.3.3 逻辑运算类指令 3.3.4 控制转移指令 3.3.5 位操作类指令 3.3.1 数据传送类指令 按传送区域,分3组 1. 内部RAM数据传送 MOV、PUSH/POP、XCH/XCHD、SWAP 2. 访问外部RAM或I/O的数据传送 MOVX 3. 程序存储器(ROM)到累加器(A)的传送 MOVC 数据传送类指令一览表 (1) 以累加器A为目的操作数的指令 (1) 以累加器A为目的操作数的指令 功能: 把源操作数的内容送入累加器A 格式 MOV A, Rn ;(A) ← (Rn) MOV A, direct ;(A) ← (direct) MOV A, @Ri ;(A) ← ((Rn)) MOV A, #data ;(A) ← #data (2) 以Rn为目的操作数的指令 (2) 以Rn为目的操作数的指令 功能:把源操作数的内容送入当前工作寄存器区的R0~R7中的某一个寄存器(由 RS1、RS0 确定) 格式 MOV Rn, A ;(A) ← (Rn) MOV Rn, direct ;(A) ← (direct) MOV Rn, #data ;(A) ← #data 注意 MOV Rn, @Ri MOV Rn, Rn [例1] MOV R0, A 若RS1=0、RS0=0 ,则R0在内部RAM的地址是 H 若RS1=0、RS0=1 ,则R0在内部RAM的地址是 H [例2] 已知:(A)=60H,(R1)=10H,(R3)=45H,(45H)=37H 指令为: MOV R1, A ;(R1) ← (A) MOV R2, 45H ;(R2) ← (30H) MOV R3, #33H ;(R3) ← #85H 执行后: (R1) = 50H、(R2) = 37H、(R3) = 35H (3) 以直接地址为目的操作数的指令 (3) 以直接地址为目的操作数的指令 功能 把源操作数送入由直接地址指出的存储单元 格式 MOV direct, A ;(direct) ← (A) MOV direct, Rn ;(direct) ← (Rn) MOV direct, direct ;(direct) ← (direct) MOV direct, @Ri ;(direct) ← ((Rn)) MOV direct, #data ;(direct) ← #data [例] 若(R1)=51H,(51H)=68H 指令为: MOV 22H, @R1 ;(40H) ←(72H) 执行结果:(22H)=68H (4) 以寄存器间接地址为目的操作数的指令 (4) 以寄存器间接地址为目的操作数的指令 功能 把源操作数送入由R0或R1指出的存储单元 格式 MOV @Ri, A ;((Ri)) ← (A) MOV @Ri, direct ;((Ri)) ← (direct) MOV @Ri, #data ;((Ri)) ← #data [例] 若 (R1)=30H, (A)=20H, 指令为: MOV @R1, A 执行结果: (R1)=______H、(30H) = ____H (5) 16位数据传送指令 (5) 16位数据传送指令 功能 把16位常数送入DPTR 高位→DPH 低位→DPL 格式 MOV DPTR,#data16 ;(DPTR) ← #data16 [例] MOV DPTR,#1342H ;执行后(DPTR)=1342H ;(DPH)=13H、(DPL)=42H (6) 堆栈操作指令 (6) 堆栈操作指令 功能、格式 PUSH—进栈 PUSH direct ;(SP)←(SP)+1,(SP)←(direct) POP— 出栈 POP direct ;(direct)←(SP),(SP)←(SP)-1 注意: [例1] 正确指令 错误指令 PUSH ACC PUSH A PUSH 00H PUSH R0 POP ACC POP A POP 00H POP R0 [例2] 进入中断服务子程序时的处理 ① 现场保护 若保护PSW、累加器A、数据指针DPTR 设保护前: (PSW)=78H、(A)=56H、(DPTR)=1234H 堆栈保护程序 PUSH PSW PUSH ACC PUSH DPL PUSH DPH ② 现场恢复 堆栈恢复程序 POP DPH POP DPL POP ACC PO
文档评论(0)