网站大量收购独家精品文档,联系QQ:2885784924

单片机系统39983232397.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章小节 7种寻址方式,111条指令 字节数 单字节指令:49条 双字节指令:45条 三字节指令:17条 7种寻址方式:立即、直接、寄存器、寄存器 间接、变址、相对、位寻址 111条指令: 数据传送类(29条) 算术运算类(24条) 逻辑运算与循环类(24条) 控制转移类( 17条) 位操作类(17条) 习题课及实验小节 综合举例: ANL A,#0FH ;屏蔽A的高4位 SWAP A ANL P1,#0FH ;清P1口高4位 ORL P1,A ;P1口高4位输出A的低4位; 把累加器A中的低4位状态,通过P1口的高4位输出, P1口的低4位状态不变。 §3.3.5 控制转移类指令( 17条) Branching Instruction 共有控制程序转移类指令(不包括位操作类的转移指令)。此类指令一般不影响PSW。 包括以下类型: 无条件转移和条件转移 相对转移和绝对转移 长转移和短转移 调用与返回指令 1. 无条件转移类指令(4条) 短转移类指令:AJMP addr11 长转移类指令:LJMP addr16 相对转移指令:SJMP rel 间接转移指令:JMP @A+DPTR (1)上面的前三条指令,统统理解成:PC值改变,即跳转到一个标号处。 那么他们的区别何在呢? 跳转的范围不同。 短转移类指令:AJMP addr11 长转移类指令:LJMP addr16 相对转移指令:SJMP rel 转移范围: 2KB 64KB -128~+127 指令构成不同。 AJMP、LJMP后跟的是绝对地址, 而SJMP后跟的是相对地址。 指令长度不同 原则上,所有用SJMP或AJMP的地方都可以用 LJMP来替代。 间接转移指令:JMP @A+DPTR 这条指令的用途也是跳转,转到什么地方去呢?这可不能由标号简单地决定了。 转移地址由A+DPTR形成,并直接送入PC。 指令对A、DPTR和标志位均无影响。 本指令可代替众多的判别跳转指令,又称为散转指令,多用于多分支程序结构中。 (2)第四条指令与前三条指令相比有所不同 例: MOV DPTR,#TAB ;将TAB代表的地址送入DPTR JMP @A+DPTR ;跳转 TAB: AJMP ROUT0 ;跳转ROUT0开始的程序段 TAB+2: AJMP ROUT1 ;跳转ROUT1开始的程序段 TAB+4: AJMP ROUT2 ;跳转ROUT2开始的程序段 TAB+6: AJMP ROUT3 ;跳转ROUT3开始的程序段 ... ROUT0: ... ROUT1: ... ROUT2: ... ROUT3: 执行该段程序后,程序将根据A中的内容转移到不同的程序段去执行----散转。 A=0,转ROUT0 A=2,转ROUT1 A=4,转ROUT2 A=6,转ROUT3 2. 条件转移指令(8条) 条件转移指令是指在满足一定条件时进行相对转移,否则程序继续执行本指令的下一条指令。 (1)判A内容是否为0转移指令(2条) JZ rel ;如果A=0,则转移,否则顺序执行。 JNZ rel ;如果A≠0,就转移。 转移到相对于当前PC值的8位移量的地址去。即: 新的PC值=当前PC+偏移量rel 我们在编写汇编语言源程序时,可以直接写成: JZ 标号 ;即转移到标号处。 例: MOV A,R0 JZ L1 MOV R1,#00H AJMP L2 L1: MOV R1,#0FFH L2: SJMP L2 END 在执行上面这段程序前:如果R0=0,结果R1=0FFH。而如果R0?0,则结果是R1=00H。 把上面的那个例子中的JZ改成JNZ,看看程序执行的结果是什么? 如果R0=0,结果R1=00H。如果R0 ?0,结果是R1中的值为0FFH。 (2)比较不等转移指令(4条) CJNE A,#data,rel CJNE A,direct,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel 此类指令的功能是将两个操作数比较,如果两者相等,就顺序执行,如果不相等,就转移。 同样地,使用时,我们可以将rel理解成标号,即: CJNE A,#data,

文档评论(0)

企业资源 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档