控制转移类指令(17条)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


3.4.4 控制转移类指令(17条)
(1) 长转移指令

LJMP addr16


对于编程者:它是一条可以转向64K空间任一地址的转 移。助记符后通常直接写目标行号。 对与汇编程序:汇编后它有三个字节,操作码是02H, 而其后的两个字节分别是目标地址的高、低字节。 对与CPU:当它取得操作码02H后,紧跟其后获取的两 个字节被送往PC,所以,本指令执行完,PC=目标地址。
X1 C2
Resistor
CRYSTAL
18
R1
1k 1nF 9
XTAL2
Resistor
220
R4
Resistor
220
R5
Resistor
220
R6
Resistor
220
R3
Resistor
220
R7
Resistor
220
R8
Resistor
220
R9
Resistor
220
Resistor
Resistor
C3
22uF
C1 U1
1nF 19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
补:指令系统的寻址方式
例如:
MAIN:
ORG LJMP ORG MOV
0000H MAIN 0030H R0,#8
;02H 00H 30H
3.4.4 控制转移类指令(17条)
(2) 近转移指令
AJMP addr11



对于编程者:它是一条可以转向2K空间某地址的转移。 助记符后通常直接写目标行号。 对与汇编程序:汇编后它有两个字节,操作码的是后 五位是00001,而其余的11位来自目标地址的后11位, 格式为(a10a9a8 00001)(a7~a0)。 对与CPU:当它取得操作码,发现后五位是00001后, 接着获取下一个字节的机器码,执行(PC)+2→ (PC),addr11→(PC10-0)。程序计数器赋予新值(PC15-11)不改变,低11位地址来自指令的标号地 址 。
;调延时子程序TIME ;转移到LOOP
延时2秒
流水式彩灯程序流程图
源程序与机器码: ORG 0100H ROM中的机器码
LOOP:MOV
P1,#55H
0100H 75H 90H 55H
12H **H **H 75H 90H AAH 12H **H **H 010CH 80H rel
执行完本指 令,希望 PC=0100H
第七课
复习 3.4 MCS-51指令系统的分类介绍
3.4.4 控制转移类指令(17条)
3.4.5 位操作指令(17条)
开头的话

Байду номын сангаас
一个计算机“智商”的高低,取决于它的转移类指 令的多少,特别是条件转移指令的多少。计算机运行过 程中,有时因为操作的需要,程序不能按顺序逐条执行 指令,需要改变程序的运行方向,即将程序跳转到某个 指定的地址再顺序执行下去。某些指令具有修改程序计 数器PC内容的功能,因为PC内容是将要执行的下一条指 令的地址,所以计算机执行这类指令就能够控制程序转 移到新的地址上去执行。
LCALL TIME MOV LCALL SJMP END P1,#0AAH TIME LOOP
转移的实质就是PC得到一个新的值:目标地址
学习方法及要求: 在这个场景中,将会有三个角色出现:编程者、汇编程 序及CPU。 编程者写出如SJMP LOOP这样的指令,表达想要转移 的意愿以及转向何处; 汇编程序将指令汇编成机器码; CPU则依据对机器码的译码最终将目标地址赋给PC。 要求: 会写不同的转移指令,掌握各转移指令的含义及使用 条件。 了解转移指令的汇编过程。 了解CPU对转移指令的执行过程。
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
RST
R2
D1
LED-RED D2
29 30 31
PSEN ALE EA
LED-RED D3
LED-RED D4
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51
3.4.4 控制转移类指令(17条)
(3) 短转移指令

SJMP rel



对于编程者:目标地址可以在这条指令的前128B到后 127B之间。助记符后通常仍然直接写目标行号。 对与汇编程序:汇编后它有两个字节,操作码是80H,而 其余一个字节表明转移的相对偏移量,用rel表示。 汇编时rel=目标地址-(源地址+2) 对与CPU:当它取得操作码为80H后,紧跟着获取的一个 字节rel被用来计算新的PC值。 执行时新的PC=(PC)当前+2+rel =源地址+2+目标地址-(源地址+2) =目标地址
3.4.4 控制转移类指令(17条)
3.4.4 控制转移类指令(17条)
无条件转移指令(4条) 条件转移指令(8条) 调用和返回指令 空操作指令(1条)
3.4.4 控制转移类指令(17条)
3.4.4 控制转移类指令(17条) 1. 无条件转移

(4条)
无条件转移指令是当程序执行到该指令时,程序无条 件的转移到指令所提供的地址处执行。无条件转移指 令有长转移、短转移、相对转移和间接转移4条指令。 AJMP LJMP SJMP JMP addr11 addr16 rel @A+DPTR
LED-RED D5
LED-RED D6
LED-RED D7
LED-RED D9
LED-RED
ORG
LOOP:MOV
0100H
P1,#55H ;调延时子程序TIME
开始
55H送P1口 延时2秒 AAH送P1口
LCALL TIME MOV LCALL SJMP END P1,#0AAH TIME LOOP
相关文档
最新文档