比较单片机编程AJMP与LJMP

分享到:
点击量: 201890 来源: 深圳市明和研翔科技有限公司

  刚学单片机的朋友对于什么时候用SJMP什么时候该用LJMP搞不清楚。看看下面的内容应该会有点帮助哦。

  SJMP 如果跳转到的标号地址距离当前PC所指的地址小于256字节,用SJMP

  AJMP 如果跳转到的标号地址距离当前PC所指的地址小于2K字节,用AJMP

  LJMP 如果跳转到的标号地址距离当前PC所指的地址小于64K字节,用LJMP

  ACALL是你调用的子程序入口地址距离当前PC所指地址需介于0~2K,LCALL是0~64K。

  跳转的范围不一样,可以说是到达的远近距离不一样。存储空间占用不一样。

  AJMP 的范围是11位地址,也就是2K的空间内,占用存储空间2个字节,执行周期24个时钟周期。

  LJMP 的范围是16位地址,也就是64K的空间内,占用存储空间3个字节,执行周期24个时钟周期。

  SJMP 的范围是8位地址,也就是256BIT的空间内,占用存储空间2个字节,执行周期24个时钟周期。

  JMP一般配合DPTR使用,存储空间1个字节,执行周期24个时钟周期。一般用于多分枝选择的时候使用,比如按键处理。

  ACALL,LCALL和以上说明类似,是调用指令,ACALL占用存储空间2个字节,执行周期24个时钟周期。LCALL占用存储空

  间3个字节,执行周期24个时钟周期。

  通常情况下LJMP LCALL比较好用。