1 标题: MCS-51 单片机转移及位操作指令 教学目标与要求:熟练掌握条件转移指令的特点及其使用方法。理解位操作指令的特点及应用。 授课时数: 4学时 教学重点:转移指令的使用 教学内容及过程: 一、控制转移类指令 1、无条件转移类指令 短转移类指令 AJMP addr 11 长转移类指令 LJMP addr 16 相对转移指令 SJMP r el 上面的三条指令,如果要仔细分析的话,区别较大,但初学时,可不理会这么多,统统理解成:JMP 标号,也就是跳转到一个标号处。事实上,LJMP 标号,在前面的例程中我们已接触过,并且也知道如何来使用了。而 AJMP 和 SJMP 也是一样。那么他们的区别何在呢?在于跳转的范围不一样。好比跳远,LJMP 一下就能跳 64K 这么远(当然近了更没关系了)。而 AJMP 最多只能跳 2K 距离,而 SJMP 则最多只能跳 256 这么远。原则上,所有用SJMP 或 AJMP 的地方都可以用LJMP 来替代。因此在初学时,需要跳转时可以全用LJMP,除了一个场合。什么场合呢?先了解一下 AJMP,AJMP 是一条双字节指令,也就说这条指令本身占用存储器(ROM)的两个单元。而 LJMP 则是三字节指令,即这条指令占用存储器(ROM)的三个单元。下面是第四条跳转指令。 间接转移指令 JMP @A+DPTR 这条指令的用途也是跳转,转到什么地方去呢?这可不能由标号简单地决定了。让我们从一个实际的例子入手吧。 MOV DPTR,#TAB ;将 TAB 所代表的地址送入 DPTR MOV A,R0 ;从 R0 中取数(详见下面说明) MOV B,#2 MUL A,B ;A 中的值乘 2(详见下面的说明) JMP A,@A+DPTR ;跳转 TAB: AJMP S1 ;跳转表格 AJMP S2 AJMP S3 . . . 2 2、条件转移指令: 条件转移指令是指在满足一定条件时进行相对转移。 1)、判 A 内容是否为 0 转移指令 JZ rel JNZ rel 第一指令的功能是:如果(A)=0,则转移,否则顺序执行(执行本指令的下一条指令)。转移到什么地方去呢?如果按照传统的方法,就要算偏移量,很麻烦,好在现在我们可以借助于机器汇编了。因此这第指令我们可以这样理解:JZ 标号。即转移到标号处。下面举一例说明: MOV A,R0 JZ L1 MOV R1,#00H AJMP L2 L1: MOV R1,#0FFH L2: SJMP L2 END 在执行上面这段程序前如果 R0 中的值是 0 的话,就转移到 L1 执行,因此最终的执行结果是 R1 中的值为 0FFH。而如果 R0 中的值不等于 0,则顺序执行,也就是执行...