内容正文:
四川省(对口招生)电子信息类《单片机原理及应用》
知识点讲解
考点14 掌握无条件转移指令(AJMP、LJMP、SJMP、JMP)
【考情分析】
本专题是 51 单片机程序控制类指令的核心考点,在高职单招、中职升高职联考及电子信息类专业技能高考中高频考查,考查形式以单选题、判断题、填空题为主,偶尔在程序阅读题中考查跳转范围与地址计算,侧重四条指令的格式、跳转范围、功能差异及应用场景识记,是理解单片机程序分支、循环结构的核心基础,需重点掌握各指令的跳转边界与适用场景区分。
考纲解读
1
掌握 AJMP、LJMP、SJMP、JMP 四条无条件转移指令的核心定义与指令格式
2
熟记各指令的跳转范围、指令字节数与机器周期,能完成跳转地址的基础计算
3
理解各指令的功能差异与适用场景,能根据程序需求选择正确的转移指令
4
区分四条指令的核心区别,规避跳转范围超限、地址计算错误等高频易错点
无条件转移指令概述
51 系列单片机的无条件转移指令,功能是不依赖任何状态标志位,直接修改程序计数器 PC 的值,强制改变程序的执行流向,跳转到指定的目标地址执行程序,是实现程序分支、循环、子程序跳转的核心指令。
本考点核心为四条无条件转移指令:绝对跳转指令 AJMP、长跳转指令 LJMP、短跳转指令 SJMP、间接长跳转指令 JMP,需重点区分各指令的跳转范围、使用限制与应用场景。
四条核心无条件转移指令
长跳转指令 LJMP(Long Jump)
定义:51 单片机中全地址范围的无条件长跳转指令,是无范围限制的通用无条件转移指令。
指令格式:LJMP addr16
核心功能:执行指令时,将 16 位目标地址 addr16 直接装入程序计数器 PC,使程序无条件跳转到 addr16 指定的目标地址处执行。
跳转范围:64KB 全程序存储空间(0000H~FFFFH),无页面、区域限制。
指令属性:3 字节指令,执行时间为 2 个机器周期。
典型示例:LJMP 0100H ;执行后,PC 值直接修改为 0100H,程序跳转到 0100H 地址处执行。
补充说明:LJMP 跳转范围覆盖整个 64KB 程序空间,不受当前 PC 值限制,编程时无需考虑跳转距离,是最常用的无条件跳转指令,尤其适用于跨大段程序的跳转。
绝对跳转指令 AJMP(Absolute Jump)
定义:2KB 页面内的绝对无条件跳转指令,是短距离、高效率的跳转指令。
指令格式:AJMP addr11
核心功能:执行指令时,将 11 位目标地址 addr11 装入 PC 的低 11 位(PC.0\PC.10),PC 的高 5 位(PC.11\PC.15)保持不变,形成新的 16 位跳转目标地址,使程序跳转到该地址执行。
跳转范围:当前 PC 值所在的 2KB 页面内(即跳转目标地址必须与 AJMP 指令取指完成后的 PC 值,处于同一个 2KB 存储页面)。
补充页面规则:64KB 程序空间划分为 32 个 2KB 页面,每个页面地址范围由 PC 高 5 位决定,高 5 位相同则属于同一 2KB 页面。
指令属性:2 字节指令,执行时间为 2 个机器周期。
典型示例:若 AJMP 指令执行后,当前 PC 值为 0100H(高 5 位为 00000B),则跳转目标地址范围为 0000H~07FFH(同一 2KB 页面)。
补充说明:AJMP 为 2 字节指令,相比 LJMP 节省程序存储空间,仅适用于短距离跳转,若跳转目标超出当前 2KB 页面,编译会报错,是考试中高频易错考点。
短跳转指令 SJMP(Short Jump)
定义:基于相对偏移量的相对无条件跳转指令,又称相对跳转指令,是最灵活的短距离跳转指令。
指令格式:SJMP rel
核心功能:执行指令时,以当前 PC 值(SJMP 指令取指完成后的 PC 值,即 SJMP 地址 + 2)为基地址,加上 8 位带符号相对偏移量 rel,形成新的目标地址装入 PC,实现程序跳转。
跳转范围:当前 PC 值为基准,-128B ~ +127B 的字节范围(向前最大跳转 128 字节,向后最大跳转 127 字节)。
指令属性:2 字节指令,执行时间为 2 个机器周期。
典型示例:SJMP $ ;$ 代表当前指令地址,是程序中常用的原地踏步、程序结束死循环写法,考试高频考查。
补充说明:rel 为 8 位带符号数,正数表示向后跳转,负数表示向前跳转;SJMP 指令不依赖固定地址,仅通过相对偏移量跳转,程序可移植性强,适用于小范围循环、短距离分支跳转,跳转范围超限是高频易错点。
间接长跳转指令 JMP(散转指令)
定义:基于累加器 A 与数据指针 DPTR 的间接无条件跳转指令,是唯一的间接寻址转移指令,专用于多分支散转程序。
指令格式:JMP @A+DPTR
核心功能:执行指令时,将累加器 A 中的 8 位无符号数与 16 位数据指针 DPTR 的值相加,结果直接装入 PC,作为跳转目标地址,实现程序的多分支跳转。
跳转范围:64KB 全程序存储空间(0000H~FFFFH),由 A+DPTR 的计算结果决定。
指令属性:1 字节指令,执行时间为 2 个机器周期。
典型示例:
Plain Text
MOV DPTR,#JUMP_TABLE ;设置散转表基地址
MOV A,R2 ;读取分支序号
RL A ;分支序号×2(AJMP为2字节指令)
JMP @A+DPTR ;跳转到对应分支入口
JUMP_TABLE:
AJMP FUN0
AJMP FUN1
AJMP FUN2 ;实现多分支按键处理、菜单跳转等功能
补充说明:JMP 指令又称散转指令,是唯一无需固定目标地址、可动态计算跳转地址的无条件转移指令,主要用于单片机的多分支程序设计(如按键功能、菜单选择),考试中侧重考查指令格式与核心应用场景。
四条指令核心关系总结
核心对比表
指令名称
指令格式
跳转范围
指令字节数
机器周期
核心适用场景
LJMP 长跳转
LJMP addr16
64KB 全程序空间
3 字节
2 个
跨大段程序的长距离跳转,无范围限制
AJMP 绝对跳转
AJMP addr11
当前 2KB 页面内
2 字节
2 个
同页面内短距离跳转,节省存储空间
SJMP 短跳转
SJMP rel
当前 PC±128B 范围
2 字节
2 个
小范围循环、短距离分支,原地死循环
JMP 间接跳转
JMP @A+DPTR
64KB 全程序空间
1 字节
2 个
多分支散转程序,动态地址跳转
易错点区分
易错点 1:混淆各指令的跳转范围 ——LJMP 是 64KB 全空间,AJMP 是 2KB 页面内,SJMP 是 - 128~+127B,JMP 是 64KB 动态范围,其中 AJMP 的 2KB 页面限制、SJMP 的字节范围是最高频易错点。
易错点 2:AJMP 跳转页面计算错误 ——AJMP 的跳转目标地址必须与指令执行后的当前 PC 值(AJMP 地址 + 2)高 5 位相同,而非指令本身地址的高 5 位,极易出现页面超限判断错误。
易错点 3:SJMP 相对偏移量的基准地址混淆 ——SJMP 的 rel 计算基准是取指完成后的 PC 值(SJMP 指令地址 + 2),而非指令本身的地址,导致跳转范围计算错误;同时易忽略 rel 是带符号数,负数为向前跳转。
易错点 4:混淆 JMP 与其他指令的寻址方式 ——AJMP、LJMP、SJMP 均为直接给定跳转地址,只有 JMP 是间接寻址,通过 A+DPTR 动态计算地址,核心用途是多分支散转,而非普通的固定地址跳转。
易错点 5:误将 SJMP 是 SJMP rel 的常用写法,$ 代表当前指令地址,本质是相对偏移量为 FEH(-2),实现原地循环,并非独立的指令格式。
例题 1. 51 单片机中,可实现 64KB 全程序空间无条件跳转的指令是( )
A. AJMP B. SJMP C. LJMP D. 以上都不行
【解析】核心考点:各指令跳转范围,LJMP 为长跳转指令,跳转范围覆盖 64KB 全程序存储空间;AJMP 仅 2KB 页面内,SJMP 仅 ±128B 范围。答案:C
例题 2. 51 单片机 SJMP 指令的跳转范围是( )
A. 2KB 页面内 B. -128B\+127B
C. 64KB 全空间 D. 0\256B
【解析】SJMP 为相对短跳转指令,以当前 PC 值为基准,跳转范围为 8 位带符号数对应的 - 128B~+127B。答案:B
例题 3. 下列关于 AJMP 指令的说法,正确的是( )
A. 是 3 字节指令
B. 跳转范围为 64KB 全空间
C. 跳转目标需与当前 PC 处于同一 2KB 页面
D. 属于间接寻址转移指令
【解析】AJMP 是 2 字节绝对跳转指令,跳转范围为当前 PC 所在的 2KB 页面内,采用直接寻址,仅 C 选项表述正确。答案:C
例题 4. (判断题)51 单片机中,JMP @A+DPTR 指令只能实现 2KB 范围内的跳转。( )
【解析】JMP @A+DPTR 为间接长跳转指令,跳转范围为 64KB 全程序存储空间,由累加器 A 与 DPTR 的和决定,无 2KB 范围限制。答案:×
例题 5. 51 单片机中,常用于实现原地踏步、程序死循环的无条件转移指令是( )
A. LJMP B. AJMP C. SJMP D. JMP
【解析】SJMP $ 是单片机程序中最常用的原地循环写法,通过 SJMP 相对跳转实现程序死循环,其余指令无此便捷用法。答案:C
【参考答案】 C B C × C
【高考题实战】
真题 1(2025 高考 单选)51 单片机中,下列无条件转移指令里,属于 3 字节指令的是( )
A. AJMP B. LJMP C. SJMP D. JMP
答案:B
真题 2(2024 高考 单选)某 51 单片机程序中,SJMP 指令执行后的当前 PC 值为 0200H,其可跳转的目标地址范围是( )
A. 0180H\027FH B. 0200H\02FFH
B. C. 0000H\07FFH D. 0000H\FFFFH
答案:A
真题 3(2023 高考 单选)51 单片机中,专用于多分支散转程序的无条件转移指令是( )
A. LJMP B. AJMP C. SJMP D. JMP
答案:D
真题 4(2025 高考 判断)51 单片机 AJMP 指令的跳转范围是 64KB 全程序存储空间。( )
答案:×
真题 5(2024 单招 单选)下列关于 51 单片机无条件转移指令的说法,错误的是( )
A. LJMP 指令无跳转范围限制,可跳转到 64KB 程序空间任意地址
B. SJMP 指令通过相对偏移量实现跳转,程序可移植性强
C. AJMP 是 1 字节指令,执行速度最快
D. JMP 指令的跳转地址由 A 和 DPTR 的值共同决定
答案:C
真题 6(2023 高考 判断)51 单片机中,SJMP rel 指令的 rel 是 8 位带符号数,可实现向前 128 字节、向后 127 字节的跳转。( )
答案:√
【参考答案】 B A D × C √
【模拟演练】
一、单选题
1. 51 单片机中,LJMP 指令的跳转范围是()
A. 2KB 页面内 B. -128B\+127B
C. 64KB 全程序空间 D. 0\127B
2. 下列无条件转移指令中,属于 1 字节指令的是()
A. LJMP B. AJMP C. SJMP D. JMP
3. 51 单片机 AJMP 指令的跳转范围是当前 PC 值所在的()页面内
A. 1KB B. 2KB C. 4KB D. 64KB
4. 单片机程序中,语句 “SJMP $” 的功能是()
A. 跳转到程序开头 B. 原地死循环
C. 跳转到下一条指令 D. 程序结束
5. 若 SJMP 指令取指完成后的 PC 值为 0300H,其向后跳转的最大目标地址为()
A. 037FH B. 0380H C. 0280H D. 027FH
6. 关于 51 单片机 JMP @A+DPTR 指令,说法正确的是()
A. 属于直接寻址转移指令 B. 只能实现短距离跳转
C. 跳转地址由 A 和 DPTR 相加决定 D. 是 3 字节指令
7. 下列无条件转移指令中,执行时不依赖固定目标地址,可动态计算跳转地址的是()
A. LJMP B. AJMP C. SJMP D. JMP
8. 51 单片机中,AJMP 指令的指令字节数为()
A. 1 字节 B. 2 字节 C. 3 字节 D. 4 字节
9. 下列哪种场景最适合使用 LJMP 指令()
A. 同页面内的短距离跳转
B. 程序末尾的原地死循环
C. 从 0000H 复位地址跳转到主程序入口 0100H
D. 按键功能的多分支散转
10. 下列关于 51 单片机无条件转移指令的换算与属性,正确的是()
A. 所有无条件转移指令的执行周期均为 2 个机器周期
B. SJMP 指令的跳转范围是 0~255B
C. AJMP 指令可跨 2KB 页面跳转
D. LJMP 是 2 字节指令,节省存储空间
二、判断题
1. 51 单片机的无条件转移指令执行时,需要依赖进位标志位 CY 才能完成跳转。()
2. LJMP 指令是 3 字节指令,可跳转到 64KB 程序存储空间的任意地址。()
3. AJMP 指令的跳转目标地址,必须与指令本身的地址处于同一个 2KB 页面内。()
4. SJMP rel 指令中,rel 为负数时,表示程序向前跳转。()
5. JMP @A+DPTR 指令又称散转指令,主要用于多分支程序设计。()
6. 51 单片机中,SJMP 指令的跳转范围比 AJMP 指令更大。()
7. 无条件转移指令的核心功能是修改程序计数器 PC 的值,改变程序执行流向。()
8. 51 单片机中,AJMP、SJMP、JMP 均为 2 字节指令。()
9. 混淆各指令的跳转范围,是本考点考试中最常见的易错点。()
10. 当跳转目标地址与当前 PC 值相差 200B 时,可使用 SJMP 指令完成跳转。()
【参考答案】
一、单选题
C D B B A C D B C A
二、判断题
× √ × √ √ × √ × √ ×
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司zxxk.com
学科网(北京)股份有限公司
$