第二章 指令系统和汇编语言.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 MCS-51系列单片机指令系统 和汇编语言程序设计 ;第一节 汇编语言与指令系统 程序:完成某项特定任务的指令的集合,设计程序用 程序设计语言 程序设计语言:机器语言、汇编语言、高级语言 机器语言:是机器唯一能懂的语言。 用汇编语言和高级语言编写的程序(源程序)必须 翻译成机器语言的程序(目标程序),计算机才能执行。 汇编语言:汇编语言的指令格式分为操作码和操作数, 操作码告诉计算机做什么,操作数表明所处理的数据是 什么。适用于编制程序工作量不大,规模较小的程序, 高级语言:高级语言面向过程。;指令系统:所有指令的集合。 51系列单片机的指令系统共有111条指令。指令按 字节来分有单字节指令、双字节指令、三字节指令。指 令字节数越少,指令执行的速度越快,所占的存储单元 也越少。指令按功能可分为五类: (1)数据传送指令 用于单片机片内RAM和特殊功能寄存器SFR之间传送数据或用于片内和片外存储单元之间传送数据。 (2)算术运算指令 用于对两个数进行加、减、乖、除等算术运算,影响程序状态字PSW。 (3)逻辑操作指令 用于对两个操作数进行逻辑乖、逻辑或、逻辑异或、逻辑取反等操作。 (4)控制转移指令 用来改变程序执行的流向,执行后改变程序计数器PC中的值。 ;5)位操作指令 位操作指令又称布尔变量操作指令,分为位传送、位置位、位运算和位控制转移指令。 指令系统中所用符号的说明: (1)Rn:工作寄存器,可以是R0—R7中的一个 (2)#DATA:8位立即数,实际使用时DATA应是00H—FFH中的一个 (3)direct:8位直接地址:实际使用时direct应00H—FFH中的一个,也可以是采用物理地址表示的特殊功能寄存器SFR中的一个 (4)@Ri:表示寄存器间接寻址,Ri只能是R0或R1;(5)#data:16位立即数 (6)@DPTR:表示以DPTR为数据指针的间接寻址,用于对外部64K RAM/ROM寻址 (7)bit:位地址 (8)addr11:11位目标地址 (9)addr16:16位目标地址 (10)rel:8位带符号地址偏移量 (11)$:当前指令的地址 ;第二节 寻址方式 寻找操作数的方法称为指令的寻址方式。在执行指令是时,CPU要根据地址寻找参加运算的操作数,然后才能对操作数进行操作,操作结果还要根据地址存入相应存储单元或寄存器中,计算机执行程序实际上是不断寻找操作数并进行操作的过程。 一、立即寻址 立即寻址是在指令码中直接含有所需的立即数,可以是二进制8位或16位立即数,立即数用#data或#data16表示,例如指令MOV A,#30H,表示把立即数30H送入累加器A; ;二、寄存器寻址 这类指令所需操作数在某个工作寄存器R0—R7、A、B或DPTR等中。例如指令ADD A,R2,它的操作功能是取出工作寄存器R2中的内容(操作数)与累加器A中的内容相加,结果送回累加器A。 如:ADD A,R2 它的操作功能是(A)? (A)+ (R2) 指令 ADD A,Ri 以Ri中i的不同,指定是哪个寄存器。;; 要访问片外RAM某一单元,还可以用16位的DPTR间接寻址。 MOV DPTR,7000H MOVX A,@DPTR ;四、直接寻址 直接给出操作数所在的存储器地址,就称为直接寻址。可用于直接寻址的存储空间主要有片内RAM的128字节和特殊功能寄存器SFR,直接地址采用direct表示,在汇编成机器码时,direct必须用实际操作数的物理地址。 如:MOV A,3AH; A←(3A) 如:MOV A,B ;同MOV A,F0。 51单片机有很强位操作功能,片内RAM有16个单元(20H~2FH)和12个SFR的各位被赋予了地址。 ;五、基址寄存器加变址寄存器间接寻址 用于访问程序存储器,主要用于查表性质的访问。以程序计数器(PC)或数据指针DPTR作为基址寄存器,以累加器A作为变址寄存器,把它们的地址和作为程序存储器地址,再读取数据。有如下两条指令: MOVC A,@A+PC;A←(A+PC) MOVC A,@A+DPTR;A←(A+DPTR) 例:已知片外ROM单元的20E0H单元有一常数47H,要把它取到累加器A,请编出相应程序。 解:根据变址寻址的特点,基地址取2000H,变址为E0H,相应程序为: MOV DPTR,#2000H ;DPTR←0300H MOV A,#E0H ;A←02 MOVC A,@A+DPTR; ;A←47H ;;;六、相

文档评论(0)

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

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

1亿VIP精品文档

相关文档