机电一体化单片机 2.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS-51的指令系统 1 MCS-51的寻址方式 1 立即寻址 2 直接寻址 3 寄存器寻址 4 寄存器间接寻址 5 变址寻址 6 相对寻址 7 位寻址 【例1】 MOV A,#60H 机器码为“74H 60H” 【例2】 MOV DPTR,#1808H 机器码是“90H 18H 08H” (2)直接寻址方式 指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间有SFR寄存器和内部数据RAM。 例如 MOV A,30H ;A←30H内部RAM单元中的内容 30H为直接给出的内部RAM的地址。 对SFR的访问只能采用直接寻址方式 (1) 内部数据存储区(00H~7FH) 【例】 MOV A, 40H (2) 特殊功能寄存器区(80H~FFH) 特殊功能寄存器SFR只能用直接寻址方式访问。当直接寻址某个SFR时,直接地址可以用它的单元地址,也可以使用它的寄存器符号。以上两种表示方式,对应的机器码是唯一的。使用后者可以增强程序的可读性。 【例】MOV A,0F0H MOV A,B 以上两条指令功能完全相同,都是将寄存器B的内容送到累加器A中,前一条指令中第二个操作数采用B寄存器的单元地址表示;后一条指令中是直接用B寄存器的名称来表示。但汇编后的机器码是完全一样的,两个字节:“E5H F0H”。 (4)寄存器间接寻址 寄存器间接寻址是指在指令中要到寄存器的内容所指的地址中去取操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址方式中,寄存器中存放的则是操作数的地址,即寄存器为地址指针。这就是说,指令的操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。 寄存器间接寻址也需要以寄存器符号名称的形式表示。为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,应在寄存器的名称前加前缀“@”, MOV A , @R0 ; A ←内部RAM(R0) 若(RO)=30H,(30H)=0FFH MOV A , R0;(A)=30H MOV A , @R0;(A)=0FFH 寄存器间接寻址的寻址范围是: (1)片内RAM低128单元,这里只能使用R0,R1作为间址寄存器.其通用形式写为@Ri(i=0,1); (2)片外RAM64KB;使用DPTR作为间址寄存器,书写形式为@DPTR. (3)片外RAM低256单元.除可使用DPTR作为间址寄存器外还可以使用R0,R1作为间址寄存器. (4)堆栈区,堆栈操作指令(PUSH和POP)也属于寄存器间接寻址,即使用SP(堆栈指针)作为间址寄存器的间接寻址方式. (5)变址寻址方式(基址寄存器+变址寄存器间接寻址) 操作数的地址由基址寄存器+变址寄存器间接寻址指出。 MCS-51单片机中可以作基址寄存器: 2个十六位寄存器,DPTR和PC MCS-51单片机中变址寄存器:8位寄存器:累加器A 操作数存放在一个由[(PC)+(A)]或[(DPTR)+(A)]指出的十六位地址所指的单元中(在ROM中), 例如:MOVC A, @A+DPTR ;A←(A+DPTR) (6)? 相对寻址 以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的PC值的寻址方式。 相对寻址用于修改PC值,主要用于实现程序的分支转移。 例如,SJMP 08H ;PC←PC+2+08H (7)? 位寻址 位寻址只能对有位地址的单元作位寻址操作。 位寻址其实是一种直接寻址方式,不过其地址是位地址。 汇编指令与格式 1.指令格式 (1) 汇编语言指令格式 [标号:] 操作码 [第一操作数] [,第二操作数] [,第三操作数] [;注释] 其中方括号[ ]括起来的部分为可选项。 例如:AM1:MOV A,#78H ;向A传输立即数78H 1 数据传送指令 数据传送指令包括片内RAM之间的数据传送指令、涉及外部RAM的数据传送指令、堆栈操作指令和数据交换指令。 片内RAM之间的数据传送指令按源操作数的寻址方式可以分为4组。 1 片内RAM之间的数据传送指令 (1)立即寻址 MOV A, #data ;A ← data MOV Rn, #data ;Rn ← data MOV @Ri, #data ;(Ri) ← data MOV direct, #data ;(direct) ← data (2)直接寻址 MOV A,direct ;A ← (direct) MOV direct, A ;(dire

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档