2-4控制转移类指令与位操作指令(1)

合集下载

微机原理习题课_1

微机原理习题课_1

提示:一个正数与负数相加,结果肯定不溢出
10
三、汇编指令 •汇编语言有三种基本语句:指令语句、伪指令语句、宏指令语句。 •指令语句=操作指令+操作数(可隐含) 汇编器如何找到操作数——寻址方式: (1)在数据存储器中,指令中如何提供操作数或操作数地址的方式。 (2)在程序存储器中,程序转移时需提供转移地址,这也称为寻址。
短标号,即位移量在-128~127的范围内。
注意:在编制大的循环程序时要注意跳转范围的限制问题,否则会出现以下的编译问题。
因此要求在编制程序时要做到短小精悍,简洁易读 提示:条件转移指令往往与逻辑指令,移位指令,CMP等指令相配合。
28
习题3.2
若WORD1及WORD2均为字变量,ADDITION为标号,请说明下列指令的错误之处:
12
例题 要点:理解各段与寄存器的概念,正确使用寻址方式。
例: (1)直接、间接、立即三种寻址方式的执行速度由快至慢依次为:
(2)下列指令中立操即作、数直在接代、码间段接中的是
A.MOV AL,25H
B.ADD AL,BH
C.CMP AX,[BP]
D.INC DS:[BP]
A
13
要点1:寄存器不能随便使用
若已知下一条指令到所跳转地址的相对位移量–128~+127,则可用标号SHORT
➢可以不定义SHORT NEXT:
… JMP NEXT
➢必须定义SHORT JMP SHORT NEXT …
NEXT: …
24
③段内间接转移:16位相对位移量 JMP reg或JMP mem MOV BX, 1000H JMP BX JMP WORD PTR [BX+20H] ④段间直接转移:32位相对位移量(CS:IP) JMP FAR PTR label, ⑤段间间接转移:32位相对位移量(CS:IP), JMP mem MOV SI, 0100H JMP DWORD PTR [SI]

80C51单片机指令系统操作码助记符英语原文和汉语含义

80C51单片机指令系统操作码助记符英语原文和汉语含义

80C51单片机指令系统操作码助记符按功能可分为五大类:对每个助记符给出英语原文和汉语含义。

1)数据传送类指令(7种助记符)MOV:Move,对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送。

MOVC:Move Code,读取程序存储器数据表格的数据传送。

MOVX:Move External RAM,对外部RAM的数据传送。

XCH:Exchange,字节交换。

XCHD:Exchange low-order Digit,低半字节交换。

PUSH:Push into Stack,入栈。

POP:Pop from Stack,出栈。

2)算术运算类指令(8种助记符)ADD:Addition,加法。

ADDC:Add with Carry,带进位加法。

SUBB:Subtract with Borrow,带借位减法。

DA:Decimal Adjust,十进制调整。

INC:Increment,加1。

DEC:Decrement,减1。

MUL:Multiplication、Multiply,乘法。

DIV:Division、Divide,除法。

3)逻辑运算类指令(10种助记符)ANL:And Logic,逻辑与。

ORL:OR Logic,逻辑或。

XRL:Exclusive-OR Logic,逻辑异或。

CLR:Clear,清0。

CPL:Complement,取反。

RL:Rotate left,循环左移。

RLC:Rotate Left through the Carry flag,带进位循环左移。

RR:Rotate Right,循环右移。

RRC:Rotate Right through the Carry flag,带进位循环右移。

SWAP:Swap,低4位与高4位交换。

4)控制转移类指令(18种助记符)ACALL:Absolute subroutine Call,子程序绝对调用。

LCALL:Long subroutine Call,子程序长调用。

MCS-51指令系统

MCS-51指令系统
18
4、控制转移类指令(二)
无条件转移:(LJMP,AJMP,SJMP,JMP—4条) LJMP addr16 长跳转指令
——可在64K范围内跳转 AJMP addr11 绝对跳转指令
——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令
——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令
1
累加器清零/取反操作 (CLR,CPL—2条)
CLR A —对累加器清零
1 Byte 1 Tm
CPL A ——对累加器按位取非 1 Byte 1 Tm 15
3、逻辑运算及移位类指令(三)
逻辑运算指令在程序中的应用(下面的例子认为Acc 的内容为9AH)
逻辑与ANL运算用于对某些位进行清0或者保留: 例: ANL A, #0FH; 则(A) = 0AH
位清零/置位指令(4条): CLR bit(或C) —— (bit或 C)“0” SETB bit(或C) —— (bit或 C)“1”
位逻辑与/或/非指令(6条): ANL C,bit(或/bit) ORL C,bit(或/bit) CPL bit (或 C) 注: “/bit”表示对bit位先取反然后再参加运算
带借位减法(SUBB):(A) ← (A)- (Cy)- (第二操作数)
10
2、算术运算类指令(三)
加1/减1操作: (INC,DEC—9条) INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位。
单字节乘/除运算: (MUL,DIV—2条) 两个单字节数的乘/除法运算只在A与B之间 进行。 MUL AB: (A)与(B)相乘, 积为16位数,

控制转移类指令.ppt

控制转移类指令.ppt
无条件地转移到其他代码段内标号所指定的目标地址处。 操作: 如果标号为其它代码段内定义的标号,则
(IP)←标号的偏移地址 (CS)←标号的段地址 如果标号为本代码段内定义的标号,则该指令同JMP NEAR PTR lable。 说明: ① 也可直接使用数值表达式来给出目标地址,这时可省略FAR属性说明。 JMP 2000H:0100H ② 机器指令代码直接提供了转向地址的段地址和偏移地址,属于直接转 移方式。 ③ 使用绝对地址来表示转移目标地址,因此属于绝对转移。
(2)条件转移指令分为以下四类。
① 单标志位测试转移指令 通过测试单个标志位的状态来决定是否转移的指令。 例:
ADD AX,BX JC LAB1 ;如果 CF = 1,转至 LAB1
CMP CX,DX JE LAB2 ;如果 ZF = 1,转至 LAB2
② 无符号数比较转移指令
该类指令将参与比较的两个数据看作是无符号数,并根据比较运算后 标志位CF和ZF的状态来判断它们之间的大小关系,从而决定是否转移。 例:
说明:
① 8位位移量是带符号数,因此跳转的范围为( -128 --- +127 )。
② 指令中的转移目标地址用相对于当前IP所指向指令的相对位移量来 表示,因此属于相对转移。
例1:
0000H EB 04 0002H B0 01 0004H B3 02 0006H B1 03

例2:
0000H B0 01 0002H B3 02 0004H B1 03 0006H EB F8 0008H B2 04
JBE/JNA 标 CF=1或ZF=1 号
JG/JNLE 标 SF⊕OF=0且

ZF=0
带符号数 比较转移
JGE/JNL 号

单片机汇编指令

单片机汇编指令

内部 RAM
R0
3 AH 6 5H 3 AH
A
6 5H
图2.4 寄存器间接寻址示意图
5. 变址寻址 变址寻址是指将基址寄存器与变址寄存器的内容相加,结 果作为操作数的地址。DPTR或PC是基址寄存器,累加器A是变 址寄存器。该类寻址方式主要用于查表操作。
例如,指令MOVC A,@A+DPTR执行的操作是将累加器
8051
开始 55H送P1口 延时0.3秒 AAH送P1口 延时0.3秒
流水式彩灯控制程序框图
控制程序 ORG 0000H LOOP: MOV P1,#55H ;将立即数55H送P1端口 LCALL TIME ;调延时子程序TIME MOV P1,#0AAH ;将立即数AAH送P1端口 LCALL TIME ;调延时子程序TIME SJMP LOOP ;转移到LOOP TIME: MOV R6,#200 ;延时子程序TIME TIME1:MOV R7,#200 TIME2:NOP NOP NOP DJNZ R7,TIME2 DJNZ R6,TIME1 RET END
CPL
RL
A
A
;将累加器A中的内容取反
;将累加器A的内容循环左移
内部RAM
R1 A 2 0H
2 0H
0 9H 0 1
RS1 RS0
图2.1 寄存器寻址示意图
2. 直接寻址 直接寻址是指把存放操作数的内存单元的地址直接写在
指令中。在MCS-51单片机中,可以直接寻址的存储器主要
有内部RAM区和特殊功能寄存器SFR区。 例如,指令MOV A,3AH执行的操作是将内部RAM 中 地址为3AH的单元内容传送到累加器A中,其操作数3AH就 是存放数据的单元地址,因此该指令是直接寻址。

汇编语言2-4逻辑移位指令

汇编语言2-4逻辑移位指令
第 2章
8086指令系统
一、数据传送类; 二、算术运算类; 三、位操作指令(逻辑运算和移位类); 四、串操作类; 五、控制转移类; 六、处理器控制类;
第 2章
8086指令系统
位操作指令,它们都是按位进行操作的包含逻辑运
算类指令和移位指令。 位操作类指令以二进制位为基本单位进行数据的操 作;这是一类常用的指令,都应该特别掌握 注意这些指令对标志位的影响 要求:全面而准确地理解每条指令的功能和应用 重点掌握以下指令:
第 2章
2、逻辑或指令OR
功能:对两个操作数执行按位逻辑或运 算,结果送到目的操作数
OR reg,imm/reg/mem ;reg←reg∨imm/reg/mem OR mem,imm/reg ;mem←mem∨imm/reg
说明:(1)按位逻辑或运算; (2)OR指令对操作数的限制和对标志位的影响; 思考: (1)某一个操作数自己和自己相逻辑或? 置某些位 (2)OR指令主要用在什么场合?
RCR reg/mem,1/CL
;带进位循环左移
;带进位循环右移
演示
第 2章
说明:循环移位指令
对操作数:同移位指令。 对标志的影响:
(1)按照指令功能设置进位标志CF (2)不影响SF、ZF、PF、AF (3)对于OF,同移位指令。如果进行一位移动, 则按照操作数的最高符号位是否改变,相应设置 溢出标志OF:如果移位前的操作数最高位与移位 后操作数的最高位不同(有变化),则OF = 1; 否则OF = 0。当移位次数大于1时,OF不确定
第 2章
例:移位指令
mov cl,4 mov al,0f0h ;al=f0h shl al,1 ;al=e0h ;CF=1,SF=1、ZF=0、PF=0,OF=0 shr al,1 ;al=70h ;CF=0,SF=0、ZF=0、PF=0、OF=1 sar al,1 ;al=38h ;CF=0,SF=0、ZF=0、PF=0、OF=0 sar al,cl ;al=03h ;CF=1,SF=0、ZF=0、PF=1 、OF=0

控制转移类指令ppt课件(全)

控制转移类指令ppt课件(全)

(4)CJNE @Ri,#data,rel 该指令功能:若(( Ri ))≥ data,(CY)=0; 若(( Ri ))<data ,CY=1; 若(( Ri ))≠ data,则PC←(PC)+rel,转移; 若(( Ri ))=data,则程序顺序执行.
例:如果(A) ≠ 00H,转移到CX1;如果(R1) ≠ 10H, 转移到CX2;如果(A) ≠(60H),转移到CX3。程序段 如下:
(2)指令长短不一样。LJMP是3字节指令;AJMP、 SJMP是2字节指令;JMP是1字节指令。
(3)指令机器码构成不同。AJMP、LJMP、JMP后跟 的是绝对地址,而SJMP后跟的是相对地址。
(4)地址特点不同。LJMP、AJMP、SJMP的转移目标 地址是固定的,程序执行过程中不变;JMP的转移目 标地址随程序的执行是动态变化的。
1. 长跳转指令 LJMP (3字节) LJMP addr16 ; PC addr16
•执行该指令时, 将目标语句的16位地址addr16装入 PC, 程序无条件转向指定的目标语句执行。 •由于长跳转指令提供的是16位地址,对应64KB的程 序存储器地址空间,所以可跳转到64KB程序存储器 地址空间的任何地方。 •实际应用中长跳转汇编指令写作“LJMP 目标语句 标号”的形式,如“LJMP LOOP”。
• 指令对A、DPTR和标志位均无影响。
注意:以上四条指令结果均不影响程序状态 字寄存器 PSW 。
5.LJMP、AJMP、SJMP、JMP四条无条件转移指令的 区别:
(1)转移范围不一样。LJMP、JMP转移范围是64KB; AJMP转移范围是与当前PC值同一个2KB区间;SJMP 转移范围是相对当前PC值的-128B~+127B范围内。

《单片机原理及应用》课程标准

《单片机原理及应用》课程标准

《单片机原理及应用》课程标准一、学习领域(课程)综述(一)学习领域定位“单片机原理及应用”学习领域由岗位群的“电子产品技术支持岗位”行动领域转化而来,是构成应用电子技术专业框架教学计划的专业学习领域之一,其定位见表一:表一学习领域定位(二)设计思路本学习领域注重培养分析问题、解决问题的能力、强化学生动手实践能力,遵循学生认知规律,紧密结合应用电子专业的发展需要,为将来从事应用电子产品的设计、检测奠定坚实的基础。

将本课程的教学活动分析设计成若干项目或工作情景,以项目为单位组织教学、并以典型设备为载体,通过具体案例,按单片机项目实施的顺序逐步展开,让学生在掌握技能的同时,引出相关专业理论知识,使学生在技术训练过程中加深对专业知识、技能的理解和应用、培养学生的综合职业能力,满足学生职业生涯发展的需要。

本课程在内容组织形式上强调了学生的主体性学习,在每个项目实施前,先提出学习目标,再进行任务分析,学生针对项目的各项任务进行相关知识的学习,并通过多种实践活动实施项目以实现学习目标。

最后根据多元化的评分标准进行自我评价。

(三)学习领域(课程)目标1.方法能力目标:能根据项目任务或工作,制订项目完成工作计划;学会自我学习、收集和检索信息、查阅技术资料;在单片机应用程序调试过程中会选择各种仪器仪表;学会单片机应用程序KEIL的仿真调试方法;学会学习和工作的方法,勤于思考、做事认真的良好作风;培养学生一丝不苟、刻苦钻研的职业道德;学会在产品制作过程中进行技术指导、质量管理和成本核算方法。

2.社会能力目标:建立团结协作的精神,能与人沟通和合作完成工作任务;养成勇于创新、敬业乐业的工作作风;形成清晰的逻辑思维意识,正确辨别事物的真假;了解电子行业技术应用的发展前景,拓宽产品开发的思路;掌握产品生产工艺要求,培养工作的质量意识、安全意识;具有较强的社会责任感,为祖国发展强大贡献力量的责任意识;积累丰富的工作经验。

3.专业(职业)能力目标:能熟悉和了解不同厂商、不同型号单片机器件并掌握其性能特点;能读懂单片机应用系统电路原理,包括复位电路、时钟电路、最小单片机应用系统电路,掌握各I/O的区别及与外围电路连接的方法,区分辩别单片机的地址线、数据线及控制线,熟练掌握单片机拥有的系统资源及资源利用,掌握汇编语言的指令格式、寻址方式,学会汇编语言的程序编写,学会简单的应用系统设计;能识别各种外围元器件并进行元器件焊接、KEIL仿真调试;能根据应用系统原理图编写控制程序;能在单片机系统调试和维修过程中,通过工程计算和理论分析,判断故障点和提供解决问题的途径;会使用常用仪器仪表如万用表、示波器、频率计对单片机应用系统进行判断分析、调试,直至调试成功;掌握程序流程图的画法、子程序的编写方法、中断程序的编写方法、子程序和中断调用、伪指令的熟练使用、熟练掌握顺序程序结构、循环程序结构、分支程序结构,掌握仿真器的使用及结合软硬件调试程序。

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

该如何修改?
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令 (2)条件转移类指令 判断A内容是否为0 ①判断A内容是否为0转移指令 (A)=0,则转移,否则顺序执行; JZ rel ;若(A)=0,则转移,否则顺序执行; JNZ rel ;若(A)≠0,则转移,否则顺序执行; (A)≠ 则转移,否则顺序执行; 例如: 例如:MOV A,#0 MOV R0,#0 JZ LAB2 LAB1: MOV R0,#0FFH LAB2: AJMP $ JNZ类似 不再举例。 类似, JNZ类似,不再举例。 比较转移指令(会影响到C 在此不作展开) ②比较转移指令(会影响到C位,在此不作展开) (A)=data,则顺序执行, CJNE A,#data,rel ;若(A)=data,则顺序执行,否则转移 (A)=(direct),则顺序执行, CJNE A,direct,rel ;若(A)=(direct),则顺序执行,否则转移 CJNE Rn,#data,rel ;若(Rn)=data,则顺序执行,否则转移 (Rn)=data,则顺序执行, ((Ri))=data,,则顺序执行, ,,则顺序执行 CJNE @Ri,#data,rel ;若((Ri))=data,,则顺序执行,否则转移
2011-11-12
结束! 结束!
思考:若要求将上次课我们 实现的单向流水灯改为双向 流水灯(即来回跑动),该 如何修改程序?
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令
作业: 作业: 设初始(30H)=FEH 执行下面程序段后, (30H)=FEH, (1)设初始(30H)=FEH,执行下面程序段后,(30H)=? MOV 30H,#0FEH MOV 31H,#5H MOV A,30H LOOP:RR A DJNZ 31H,LOOP MOV 30H,A 设初始(A)=37D (30H)=23D,执行下面程序段后, (A)=37D, (2)设初始(A)=37D,(30H)=23D,执行下面程序段后,(A)=? LOOP:DEC A INC 30H CJNE A,30H,LOOP MOV R0,A
任务2-4 控制转移类指令与位操作指令(1)
任务2 任务2-4 控制转移类指令与位操作指令
子任务2 单灯闪烁5 子任务2-4-1 单灯闪烁5次 1、任务要求:用单片机控制一个LED灯的亮灭,反复五次后保持常 任务要求:用单片机控制一个LED灯的亮灭, LED灯的亮灭 亮状态。 亮状态。 相关知识: 2、相关知识: 1)转移类指令 1)转移类指令 到上一次课为止,我们所学的单片机指令都是顺序执行指令, 到上一次课为止,我们所学的单片机指令都是顺序执行指令,也就是 说,之前我们编制的所有单片机汇编程序都是按照先后顺序一条一条 地逐行执行的。今天我们要给大家介绍转移类指令,有了转移类指令, 地逐行执行的。今天我们要给大家介绍转移类指令,有了转移类指令, 单片机执行程序时,就可以在该类指令的作用下, 单片机执行程序时,就可以在该类指令的作用下,根据我们的需要使 程序执行到某一行指令时跳至其他行。 程序执行到某一行指令时跳至其他行。 (1)无条件转移类指令 该类指令肯定会使单片机发生跳转, 该类指令肯定会使单片机发生跳转,不需要任何条件 ①AJMP addr11 ;短转移类指令 ②LJMP addr16 ;长转移类指令 ③SJMP rel ;相对转移类指令
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令
③例如:;主程序 例如: MOV P1,#0 ACALL DELAY MOV P1,#0FFH AJMP $ 子程序, ;子程序,实现延时功能 DELAY: MOV R0,#0FFH LOOP1: MOV R1,#0FFH DJNZ R1,$ DJNZ R0,LOOP1 RET
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令 (3)调用与返回指令 (3)调用与返回指令 回忆C语言编写程序时,对于反复使用的模块,为了让程序更简洁, 回忆C语言编写程序时,对于反复使用的模块,为了让程序更简洁, 我们往往将其编制为函数,在需要使用的时候进行调用。 我们往往将其编制为函数,在需要使用的时候进行调用。汇编语言中 也有类似功能,对于反复使用的模块,我们可以将其编制为子程序, 也有类似功能,对于反复使用的模块,我们可以将其编制为子程序, 在需要使用的时候进行调用。 在需要使用的时候进行调用。 ①调用指令 LCALL ;长调用指令 ACALL ;短调用指令 ②返回指令 RET ;返回指令
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令
区别: 区别: ①AJMP指令能转移的范围只能在2KB范围之内(0000H~07FFH、0800H~0FFFH…),双 AJMP指令能转移的范围只能在2KB范围之内(0000H~07FFH、0800H~0FFFH…),双 指令能转移的范围只能在2KB范围之内 字节指令; 字节指令; LJMP指令能转移的范围能达到64KB(0000H~FFFFH) 即整个程序存储器寻址空间, 指令能转移的范围能达到64KB(0000H~FFFFH), ②LJMP指令能转移的范围能达到64KB(0000H~FFFFH),即整个程序存储器寻址空间, 三字节指令; 三字节指令; SJMP指令能转移的范围只有256B(以当前地址为基点, 128~+127),双字节指令。 指令能转移的范围只有256B ),双字节指令 ③SJMP指令能转移的范围只有256B(以当前地址为基点,-128~+127),双字节指令。 例如: 例如: ① AJMP LAB MOV P2,#01H LAB:MOV P2,#03H ② LJMP LAB MOV P2,#01H LAB:MOV P2,#03H ③ SJMP LAB MOV P2,#01H LAB:MOV P2,#03H
2011-11-12
任务2 任务2-4 控:MOV A,#0 A,#0,LAB1 CJNE A,#0,LAB1 MOV R0,#0 AJMP LAB2 LAB1: MOV R0,#0FFH LAB2: AJMP $ 其余三条指令类似,不再举例。 其余三条指令类似,不再举例。 ③循环转移指令 ;(Rn)←(Rn)(Rn)≠0则转移, ≠0则转移 DJNZ Rn,rel ;(Rn)←(Rn)-1,若(Rn)≠0则转移,否则顺序执行 DJNZ direct,rel ;(direct)←(direct)-1,若(Rn)≠0则转移,否 ;(direct)←(direct)(Rn)≠0则转移, ≠0则转移 则 ;顺序执行
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令
④JMP @A+DPTR ;间接转移指令 类似于查表指令"MOVC A,@A+DPTR",指令将由"基址"(DPTR的内容)加 类似于查表指令"MOVC A,@A+DPTR",指令将由"基址"(DPTR的内容) "(DPTR的内容 偏移量"(A的内容)后的地址作为程序转移的地址。 "(A的内容 上"偏移量"(A的内容)后的地址作为程序转移的地址。 例如: ;传递表头(基址,或者说第一条分支地址) 例如:MOV DPTR,#TAB ;将要执行分支的序号传递给A MOV A,R0 MOV B,#2 ;因为AJMP为双字节指令,因此偏移量必须是2的倍数 MUL AB ;转移 JMP A,@A+DPTR ;分支0 TAB: AJMP S0 ;分支1 AJMP S1 ;分支2 AJMP S2 … 思考:如果分支0、1、2…所用的指令改为LJMP,则“MOV B,#2”应 B,#2”
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令 ;延时子程序 DELAY:MOV R1,#0FFH LOOP1:MOV R2,#0FFH DJNZ R2,$ DJNZ R1,LOOP1 RET ;结束 END
(2)软件程序 ORG 0000H ;主程序 MOV 30H,#5 LOOP:MOV P2,#01H ACALL DELAY MOV P2,#0 ACALL DELAY DJNZ 30H,LOOP MOV P2,#01H AJMP $
2011-11-12
任务2 任务2-4 控制转移类指令与位操作指令
3、任务解析 与上次课流水灯实现方式不同, 与上次课流水灯实现方式不同, 流水灯反复运行, 流水灯反复运行,因此只需使 用无条件转移指令"AJMP 用无条件转移指令" address11"指令即可 指令即可; address11"指令即可;但本次 任务, 任务,对反复执行的次数有了 限定, 限定,因此这里必须使用相对 较复杂的条件转移指令"DJNZ 较复杂的条件转移指令"DJNZ direct(或者Rn),rel"。 direct(或者Rn),rel"。 或者Rn),rel" (1)硬件电路
相关文档
最新文档