- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据传送指令
数据传送指令包括数据的传送、交换、堆栈数据的压入与弹出,是最基本、使用率最高的一类指令。助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP共八种。1.MOV类指令及功能(16条)这类指令的功能是从源操作数到目的操作数的数据传送。MOV A, Rn ;Rn→A,寄存器Rn的内容送到累加器AMOV A, direct ;(direct)→A,直接地址中的内容送AMOV A, @Ri ;(Ri)→A,Ri间址的内容送AMOV A, #data ;data→A,立即数送AMOV Rn,, A ;A→Rn,累加器A中的内容送寄存器RnMOV Rn, direct ;(direct)→Rn;直接地址中的内容送RnMOV Rn, #data ;data→Rn;立即数送RnMOV direct, A ;A→(direct),A中的内容送入直接地址中MOV direct, Rn ;Rn→(direct),寄存器内容送入直接地址中MOV direct, direct ;(direct) →(direct),源操作数直接地址的内容送入;目的操作数的直接地址中MOV direct, @Ri ;(Ri)→(direct),Ri间址内容送入直接地址中MOV direct, #data ;data→(direct),立即数送入直接地址中MOV @Ri, A ;A→(Ri),A中内容送到Ri间址单元中MOV @Ri, direct ;(direct)→(Ri),直接地址中内容送入Ri间址单元中MOV @Ri, #data ;data→(Ri),立即数送入Ri间址单元中MOV DPTR, #data16 ;data16→DPTR,16位常数送入数据指针DPTR中,高8;位送入DPH,低8位送入DPH,低8位送入DPL中从上述指令可以看出目的操作数有A累加器、Rn寄存器、直接地址direct及间接地址@Ri,源操作数除此之外还多一种立即数data。例1 R0中有常数30H,而30H地址中有常数50H执行MOV A, R0后,A=30H,R0不变。执行MOV A, @R0后A=50H,而不是30H,这条指令的功能是把R0中内容为地址的单元的书送入A,R0中是30H也就是把30H地址中内容50H送入A。例2 若(40H)=20H,(50H)=30H执行MOV 40H, 50H; (50H) →(40H)结果:(40H)=30H,50H地址中内容仍为30H。例3 若A=40H,R0=30H,执行MOV @R0, A ;A→(R0)结果:(30H)=40H,A与R0皆不变,即A=40H,R0=30H。该指令功能是把A中内容送入R0间址单元即R0中内容为地址的单元。例4 执行MOV DPTR, #2040H ;2040H→DPTR结果:DPH=20H, DPL=40HDPTR是片外RAM地址指针,只有这一条指令是传送16位数据。2.MOVC类指令及功能(2条)MOVC A, @A+PC ;PC+1→PC, (A+PC) →AMOVC A, @A+DPTR ;(A+DPTR) →A功能:该类属于查表指令,利用这两条指令很方便地查找放在程序存储器中数据表格的内容。例1 程序 1000H MOV A, #10H ;10H→A 1002H MOVC A, @A+PC ;PC+1→PC,PC=1003H,(A+PC)=(10H+1003H)→A ... 1010H 02H 1011H 04H 1012H 06H 1013H 08H程序执行结果:A=08H用MOVC A, @A+PC指令需注意两点:1)指令中的PC是执行完本条指令后的PC值,即PC等于本条指令地址加1。2)A是修正值,它等于查表指令和欲查数据相间隔字节数。A的范围是0~255,一次该指令只能查找本指令后的256B范围内的表格,故称为近程查表。例2 程序 1000H MOV A, #01H ;01H→A 1002H MOV DPTR, #6000H ;6000H→DPTR 1005H MOVC A,@A+DPTR ;(A+DPTR)=(01H+6000H)=(6001H) →A ...6001H 0AH 6002H 0BH 6003H 0CH 6004H 0DH程序
文档评论(0)