单片机第3章_指令系统分析.pptVIP

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机第3章_指令系统分析

3.1 指令及其表示方法 MCS-51单片机指令系统共有111条指令。 不同指令翻译成机器码后字节数也不一定相同。按照机器码个数,指令可以分为以下三种: MCS-51单片机指令系统包括49条单字节指令、46条双字节指令和16条三字节指令。其中: 操作码(opecode)表示指令的操作种类,如MOV表示数据传送操作,ADD表示加法操作等。 操作数(operand)表示参加运算的数据或数据的有效地址。 (1)单字节指令 指令只有一个字节,操作码和操作数在一个字节中。 如MOV A,Rn,指令机器码为单字节11101rrr,其中rrr可表示为000~111,分别代表R0~R7。 (2)双字节指令 其中一个字节为操作码,另一个字节为操作数(数据或数据所在的地址)。 如MOV A,#data,8位立即数data需占一个字节,操作码也需一个字节。 (3)三字节指令 操作码占一个字节,操作数占两个字节,其中操作数既可以是数据,也可以是地址。 如ANL direct,#data,指令需3个字节,第1字节为操作码,第2字节为8位直接地址direct,第3字节为8位立即数data。 1、立即寻址(immediate addressing ) 指令一般都是双字节,其中第一个字节是操作码,第二个字节是操作数,它在指令中直接给出,又称为立即数。 在立即数前面必须加上前缀“#”。 如指令MOV DPTR,#1234H 1234H是立即数,指令功能是把16位立即数1234H送到数据指针DPTR中,如图。 2、直接寻址(direct addressing) 在指令中直接给出操作数单元的地址。 例如,指令MOV A,3AH 功能:把片内RAM中3AH单元内的数据传送给累加器A。如下图: 直接寻址示意图(MOV A,3AH) 直接寻址方式只能给出8位地址,限于片内RAM: (1)低128单元,在指令中直接以单元地址形式给出。 (2)特殊功能寄存器,在指令中直接以单元地址形式给出,还可以寄存器符号形式给出。 如PUSH DPH==PUSH 83H。 注意:直接寻址访问累加器A时,用ACC表示累加器,以便与寄存器寻址方式区别。 3、寄存器寻址(register addressing) 在指令中将指定寄存器的内容作为操作数。 寄存器寻址方式中,用符号名表示寄存器。 如,指令INC R0 功能:把寄存器R0的内容加1,再送回R0中。由于操作数在R0中,指定了R0,也就得到了操作数。如图: 寄存器寻址示意图(INC R0) 寄存器寻址方式的寻址范围包括: (1)4个寄存器组,共32个通用寄存器。 指令中只能使用当前寄存器组。通过制定PSW中RS1、RS0,以选择使用的当前寄存器组。 (2)部分特殊功能寄存器。 例如,累加器A、B寄存器以及数据指针DPTR。 4、寄存器间接寻址 (register indirect addressing ) 在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才是操作数。 寄存器间接寻址以寄存器符号形式表示。 在该寻址中,寄存器的名称前需加前缀“@”。 如,指令MOV A,@R0 假定R0寄存器的内容是3AH,指令的功能是以3AH为地址,将3AH地址单元的内容送到累加器A中。如图: 寄存器间接寻址示意图(MOV A,@R0 ) 寄存器间接寻址的寻址范围: (1)片内RAM的低128单元,只能采用R0或R1为间接寻址寄存器。其形式为@Ri(i=0,1),如MOV A,@R0。 (2)片外RAM的64KB单元,使用DPTR作为间接寻址寄存器。例如,MOVX A,@DPTR。 (3)片外RAM低256单元,使用R0或R1作间接寻址寄存器。如:MOVX A,@R0。 (4)堆栈区:堆栈操作指令PUSH和POP,以SP作间接寻址寄存器。 5、相对寻址(relative addressing ) 仅用于相对转移指令,在指令中给出的操作数为程序转移的偏移量。 在相对转移指令中,给出地址偏移量(以rel表示),PC的当前值加上偏移量就构成程序转移的目的地址。 目的地址=(转移指令所在地址+转移指令字节数)+rel 8051指令系统中,有多条相对转移指令,这些指令均为两字节指令,个别为三字节指令。 偏移量rel是一个带符号的8位二进制补码数,表示的数的范围是-128~127。以相对转移指令的所在地址为基点,向前最大可转移(127+转移指令字节数)个单元地址,向后最大可转移(128-转移指令字节数)个单元地址。 如指令JC 80H 若进位位C为0,则PC中的

文档评论(0)

10577 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档