版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 8051汇编语言指令系统汇编语言指令系统3.1 汇编语言概述汇编语言概述3.1.1 基本概念基本概念 指令:指令:CPU执行操作的命令执行操作的命令 指令系统:所有指令的集合指令系统:所有指令的集合 程序:根据指令系统编写的指令序列程序:根据指令系统编写的指令序列 语言:计算机所能识别的指令形式语言:计算机所能识别的指令形式 语言种类:机器语言、汇编语言、高级语言语言种类:机器语言、汇编语言、高级语言 语言分类举例(以语言分类举例(以10+20=30并存放为例)并存放为例)机器语言机器语言: 01110100 00001010 A 10 (74 0AH) 00100100 000
2、10100 A=A+20 (24 14H)计算机真正能识别的是这种二进制代码,但不直观计算机真正能识别的是这种二进制代码,但不直观汇编语言:汇编语言: MOV A,#0AH (74 0AH) ADD A,#14H (2414H)采用助记符可便于阅读和编写,效率高采用助记符可便于阅读和编写,效率高高级语言:高级语言:A=10 A=A+20 最直观,软件开发快,代码效率不如汇编最直观,软件开发快,代码效率不如汇编3.1.2 汇编语言指令格式汇编语言指令格式标准标准5段式段式:标号标号: 操作码操作码 目的操作数目的操作数,源操作数源操作数 ;注释注释例如例如: LOOP: MOV A,R0 ;把把
3、R0内容放入内容放入A 标号和注释不是必须的标号和注释不是必须的,操作数的数量不确定操作数的数量不确定,可能可能是一个、两个或没有:是一个、两个或没有: 例如:例如:MOV A,#20H (两个操作数)(两个操作数) INC R0 (一个操作数)(一个操作数) RET (没有操作数)(没有操作数)3.1.3 指令的代码长度指令的代码长度1. 单字节指令(单字节指令(49条)条)(1)指令码中隐含对寄存器的操作)指令码中隐含对寄存器的操作 如如 INC DPTR A3H CLR A E4H 这类指令主要涉及一些专用寄存器这类指令主要涉及一些专用寄存器 (2)操作码中的)操作码中的rrr三位指定一
4、个工作寄存器三位指定一个工作寄存器 如如 MOV A,Rn 11101rrr 其中其中rrr =07,分别对应,分别对应R0R7 所以有:所以有:MOV A,R0 11101000 E8H MOV A,R4 11101100 ECH MOV A, R7 11101111 EFH2. 双字节指令(双字节指令(45条)条)一个字节操作码,另一个字节为操作数或地址一个字节操作码,另一个字节为操作数或地址*指令中给出操作数地址的情况(隐含寻址)指令中给出操作数地址的情况(隐含寻址) 指令形式:指令形式: 这时这时R0或或DPTR中的内容本身不是操作数,而是操中的内容本身不是操作数,而是操作数所在存储单
5、元的地址。作数所在存储单元的地址。3. 三字节指令(三字节指令(17条)条)3.2 寻址方式寻址方式定义:寻址方式是指寻找操作数(尤其是源操作数)的定义:寻址方式是指寻找操作数(尤其是源操作数)的途径或手段。途径或手段。89C51单片机共单片机共7种寻址方式。种寻址方式。1. 寄存器寻址(最常用)寄存器寻址(最常用) 寄存器指寄存器指R0R7和和A、B、DPTR 例如例如 MOV A,R0 MOV R1,A ADD A,R5 MOV P1,A 2.直接寻址直接寻址直接给出操作数所在的地址,包括片内直接给出操作数所在的地址,包括片内128字节字节RAM地址和专用寄存器地址和专用寄存器SFR的名称
6、。的名称。例如:例如: MOV A,45H 45H本身不是数据,而是指本身不是数据,而是指45H单元内的数据内容。单元内的数据内容。又如:又如:MOV A,P1(90H) 是读取是读取P1口口再如:再如:MOV A,SBUF(99H) 是读取串行接收缓冲器是读取串行接收缓冲器这种寻址方式的指令至少占这种寻址方式的指令至少占2字节,想一想,为什字节,想一想,为什么?么?3. 立即寻址立即寻址源操作数是一字节(或源操作数是一字节(或2字节)直接数据字节)直接数据 如如 MOV A,# 20H 注意立即数只能是源操作数,不能是目的操作注意立即数只能是源操作数,不能是目的操作数。数。特殊指令:特殊指令
7、: MOV DPTR,#DATA16具体如:具体如:MOV DPTR,#2000H请判断这条指令应为几字节?请判断这条指令应为几字节?4.寄存器间接寻址(难点)寄存器间接寻址(难点) 概念:寄存器中的内容不是数据,而是数据所在概念:寄存器中的内容不是数据,而是数据所在的地址。的地址。 可做间址的寄存器有可做间址的寄存器有R0、R1、DPTR 有效空间:有效空间:R0、R1操作片内操作片内128字节字节RAM DPTR操作片外最大操作片外最大64KRAM 注意:不能用此方式操作注意:不能用此方式操作SFR。 指令举例:指令举例: MOVA,R0 MOVXA,DPTR 间址概念的图解间址概念的图解
8、寄存器间接寻址方式是指令中给出的寄存器的内容为寄存器间接寻址方式是指令中给出的寄存器的内容为操作数的地址,而不是操作数本身,即寄存器为地操作数的地址,而不是操作数本身,即寄存器为地址指针。在指令码助记符中,间接寻址用符号址指针。在指令码助记符中,间接寻址用符号“”来表示。来表示。 5. 变址寻址(主要用于查表)变址寻址(主要用于查表)含义:基地址含义:基地址+变址寄存器间址变址寄存器间址 如:如:MOVC A, A+DPTR指令说明:本条指令中,指令说明:本条指令中,MOVC是专门用来读取程序存储器空是专门用来读取程序存储器空间间ROM单元内容的,源操作数的地址由累加器单元内容的,源操作数的地
9、址由累加器A中的偏移量中的偏移量与指针与指针DPTR 16位地址之和来指定。操作顺序是先求地址之位地址之和来指定。操作顺序是先求地址之和,再读取数据,送入累加器。和,再读取数据,送入累加器。6. 相对寻址(重要)相对寻址(重要)要点:要点: (1)出现在相对转移指令中)出现在相对转移指令中 (2)当前)当前PC值值=执行完转移指令后的值执行完转移指令后的值 (3)跳转的偏移量是一字节补码)跳转的偏移量是一字节补码rel 若若rel=80H,向地址减小方向转移向地址减小方向转移 (4)目的地址)目的地址=源地址源地址+2/3+rel (rel有正负有正负) 注意:所加的字节数可能是注意:所加的字
10、节数可能是2或或3,由本条指令自,由本条指令自身长度决定。身长度决定。 相对寻址指令举例:相对寻址指令举例: JC rel (JC NEXT) 如果当前进位位为如果当前进位位为1,则转到,则转到NEXT标号处;标号处; 否则,继续执行下一条指令。否则,继续执行下一条指令。 DJNZ R7, LOOP R7内容减内容减1,然后判断是否为,然后判断是否为0。若不为。若不为0则转到标则转到标号号LOOP处,否则继续执行下一条。处,否则继续执行下一条。 这里,这里,NEXT和和LOOP都是自己定义的标号地址,在汇都是自己定义的标号地址,在汇编时将自动翻译成相对地址编时将自动翻译成相对地址 rel值。值
11、。7.位寻址位寻址 寻址区域:可位寻址的专用寄存器寻址区域:可位寻址的专用寄存器 片内片内RAM 20H2FH各字节中的位各字节中的位 指令举例:指令举例:CLR 02H JNB 03H,rel 注意操作数按对等原则区分字节和位地址:注意操作数按对等原则区分字节和位地址: MOV A,40H 40H是字节地址是字节地址 MOV C,40H 此时此时40H是位地址是位地址 想一想,为什么?想一想,为什么?寻址空间和符号规定请同学自阅并熟悉之。寻址空间和符号规定请同学自阅并熟悉之。3.3 89C51单片机指令系统单片机指令系统要求:了解汇编指令按功能分类要求:了解汇编指令按功能分类 能读懂简单程序
12、片段能读懂简单程序片段3.3.1 5种指令类别:种指令类别: 数据传送类:源、目的数据传送类:源、目的, 源不变,目的修改源不变,目的修改 算术运算类:四则运算,影响标志位算术运算类:四则运算,影响标志位 逻辑运算及移位类:按位操作,影响标志位逻辑运算及移位类:按位操作,影响标志位 控制转移类:跳转、调用和返回,地址变化控制转移类:跳转、调用和返回,地址变化 位操作类:置位、复位、测试,判断转移位操作类:置位、复位、测试,判断转移3.3.2 数据传送类数据传送类 共共8种助记符:种助记符: MOV CPU与内部与内部RAM和和SFR之间传送之间传送 MOVX CPU与外部与外部RAM和和I/O
13、之间传送之间传送 MOVC CPU对程序存储器对程序存储器ROM读操作读操作 PUSH 压栈压栈 POP 弹栈弹栈 XCH 字节交换字节交换 XCHD 半字节交换半字节交换 SWAP 累加器自身半字节交换累加器自身半字节交换MOV 指令详解(使用最频繁)指令详解(使用最频繁)在在 MOV x,y 格式中格式中 y为源操作数,可以是:为源操作数,可以是: A、立即数、工作寄存器、立即数、工作寄存器、直接地址、间接地址。直接地址、间接地址。 x为目的操作数,可以是:为目的操作数,可以是:A、工作寄存器、直接地、工作寄存器、直接地址、间接地址。址、间接地址。 注意注意(1)立即数不能是目的操作数)立
14、即数不能是目的操作数 (2)不存在)不存在 MOV R1,R2 MOV R1,R0 MOV A,R2指令举例指令举例MOV A,#05H MOV A,R7MOV A,R0 MOV A,40HMOV R3,A MOV R4,#33HMOV R5,33H MOV 22H,A MOV 23H,R6MOV 40H,41H MOV 42H,R1MOV 43H,#3AH 关于对专用寄存器的操作关于对专用寄存器的操作对对SFR实际采用的是直接寻址方式,写法可有变化,例如实际采用的是直接寻址方式,写法可有变化,例如 堆栈指针堆栈指针SP字节地址为字节地址为81H,对它操作可写成:,对它操作可写成: MOV S
15、P,#60H (编译系统自动识别(编译系统自动识别SP) 或者或者 MOV 81H,#60H 这两者是等价的,但以前一种为方便,条件是编译系统这两者是等价的,但以前一种为方便,条件是编译系统能识别能识别SP之类的保留字。之类的保留字。 再如再如 MOV A,PSW MOV A,D0H 后一种方法要求记忆所有后一种方法要求记忆所有SFR地址,且阅读不方便。地址,且阅读不方便。 特殊的特殊的16位传送操作(常用)位传送操作(常用)数据地址指针寄存器数据地址指针寄存器DPTR结构:结构:它可以按它可以按16位操作,也可以按高低字节单独操作。位操作,也可以按高低字节单独操作。例如:例如: MOV DP
16、TR,#2000H或者:或者: MOV DPH,#20H MOV DPL,#00H数据传送类指令应用举例数据传送类指令应用举例例例1:为:为R7赋值立即数赋值立即数2AH MOV R7,#2AH例例2:将:将46H单元内容读到累加器单元内容读到累加器A MOV A,46H例例3:将:将R2中的字节内容送到片外中的字节内容送到片外1008H单元单元 MOV A,R2 MOV DPTR,#1008H MOVX DPTR,A3.3.3 算术运算类(四则运算,双目)算术运算类(四则运算,双目)共共5种助记符种助记符:ADD :不带进位加法:不带进位加法ADDC:带进位加法:带进位加法SUBB:带借位减
17、法:带借位减法MUL AB:无符号乘法:无符号乘法 AB= B A(高在前)(高在前)DIV AB:无符号除法:无符号除法A/B= A(商)(商)B(余数)(余数)要点:要点:A是必然的目的操作数是必然的目的操作数指令应用举例指令应用举例例例4:单字节加法,:单字节加法,R4+R3 R6R5(高在前)(高在前) MOV A,R3 取一个加数取一个加数 ADD A,R4 加上另一个加数加上另一个加数 MOV R5,A 存和低字节存和低字节 CLR A A清零清零 ADDC A,#00H 考虑进位位考虑进位位 MOV R6,A 存高字节(存高字节(0或或1) 注意:执行注意:执行ADD操作时影响进
18、位位操作时影响进位位CY 例例5:双字节加法:双字节加法 R2R1+R4R3=R7R6R5MOV A,R1 取加数低字节取加数低字节ADD A,R3 与被加数低字节相加与被加数低字节相加MOV R5,A 存低字节和存低字节和MOV A,R2 取加数高字节取加数高字节ADDC A,R4 与被加数高字节相加与被加数高字节相加MOV R6,A 存高字节和存高字节和CLR A A清零清零ADDC A,#00H 加进位加进位MOV R7,A 存进位值存进位值例例6:双字节减法:双字节减法 R2R1-R4R3=R6R5CLR C 预先清除借位标志预先清除借位标志MOV A,R1 取被减数低字节取被减数低字
19、节SUBB A,R3 减去减数低字节减去减数低字节MOV R5,A 存低字节差值存低字节差值MOV A,R2 取被减数高字节取被减数高字节SUBB A,R4 减去减数高字节和借位减去减数高字节和借位MOV R6,A 存高字节差值存高字节差值注意:可根据此时注意:可根据此时CY的状态判断是否够减的状态判断是否够减例例7:多字节乘法演算规则:多字节乘法演算规则双字节乘以双字节的结果要由双字节乘以双字节的结果要由4字节表示字节表示如如 R3R4R5R6=40414243H3.3.4 逻辑操作类逻辑操作类要点要点: (1)逻辑运算与算术运算的最大不同在于逻辑运算与算术运算的最大不同在于,虽然是字节虽然
20、是字节的形式的形式,但是按位运算但是按位运算.(2)一目运算的操作数必然是一目运算的操作数必然是A,双目运算多数有双目运算多数有A参加参加且为目的操作数且为目的操作数.(3)指令功能包括指令功能包括:与、或、异或、清除、求反、移位与、或、异或、清除、求反、移位共共7种指令助记符:种指令助记符:ANL:ANL A,x(x: Rn,地址,地址,Ri,立即数),立即数)ORL: ORL A,xXRL: XRL A,x以上操作称为双目运算以上操作称为双目运算.下列为单目的下列为单目的,只对只对A.CLR: CLR A A累加器清零累加器清零CPL: CPL A A按位求反按位求反RL/RLC: RL
21、A/RLC A算术算术/逻辑左移逻辑左移RR/RRC: RR A/RRC A算术逻辑右移算术逻辑右移应用举例应用举例 例例8: 把把P1口高口高4位清零位清零,低低2位置位置1,其余不变其余不变 MOV A, #0FH ANL P1, A MOV A,#03H ORL P1, A说明说明: 这时的逻辑操作称为读这时的逻辑操作称为读-修改修改-写写 0FH可称为屏蔽字可称为屏蔽字,03H可称为组合字可称为组合字.例例9: 逻辑操作位图逻辑操作位图(A) ANL A, 38H (A=9FH)(B) CPL A (A=7CH)3.3.5 控制转移类控制转移类(使用较少但很重要使用较少但很重要)共共1
22、6种助记符种助记符: 无条件小类无条件小类 JMP A+DPTR 间接转移(散转)间接转移(散转) SJMP rel 一字节补码短跳转一字节补码短跳转 AJMP 11位地址标号位地址标号 2K空间空间 LJMP 16位地址标号位地址标号 64K空间空间 条件转移小类条件转移小类 JZ rel / JNZ rel 为为0/非非0转转 JC rel / JNC rel 有有/无进位转无进位转 JB bit,rel / JNB bit,rel 置位置位/复位转复位转 CJNE x,y,rel 比较不等转比较不等转 DJNZ x, rel 减减1不为不为0转转 调用和返回小类调用和返回小类 ACALL
23、 / LCALL 短调用短调用/长调用长调用 RET / RETI 子程序返回子程序返回/中断返回中断返回 3.3.6 位操作类位操作类共共15种助记符种助记符: MOV C,bit / MOV bit,C CLR C / CLR bit SETB C / SETB bit ANL C,bit / ANL C,/bit ORL C,bit / ORL C,/bit CPL C / CPL bit JB bit,rel / JNB bit,rel JBC bit,rel 综合编程举例综合编程举例例例10把片外把片外RAM 2000H200FH内容传送到片内内容传送到片内RAM 40H4FH中中. 解解: MOV DPTR,#2000H 源首地址源首地址 MOV R7,#10H 计数初始值计数初始值 MOV R0,#40H 目的首地址目的首地址LOOP: MOVX A, DPTR 取一个源数据取一个源数据 MOV R0,A 存一个数据存一个数据 INC DPL 修改源地址修改源地址 INC R0 修改目的地址修改目的地址 DJNZ R7,LOOP 判结束判结束例例11. 把把P1口的口的P1.6、P1.7清零清零,且置且置P1.0、P1.1为为1,其余不变其余不变.解:解: MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026西藏那曲嘉黎县邮政分公司招聘6人考试备考题库及答案解析
- 2026山东烟台崆峒胜境招聘考试备考题库及答案解析
- 2026年曲阜师范大学公开招聘人员(6名)笔试模拟试题及答案解析
- 2026年轧钢机润滑油行业分析报告及未来发展趋势报告
- 2026年工业能效管理行业分析报告及未来发展趋势报告
- 医院感染控制建筑设计方案
- 2026年耐火云母带行业分析报告及未来发展趋势报告
- 2026贵州省公路工程集团有限公司第一批公开招聘53人考试参考题库及答案解析
- 2026年运动休闲礼品行业分析报告及未来发展趋势报告
- 污水厂站一体化建设方案
- 2026年设备出售转让合同(1篇)
- 2026年事业单位面试结构化100例
- 2026年深圳市盐田区初三二模语文试卷(含答案)
- 2026中南出版传媒集团股份有限公司春季招聘考试参考题库及答案解析
- 20kV及以下配电网工程预算定额(2022版)全5册excel版
- 饮用水水质PH值安全控制检测标准
- 骨科护理饮食与营养康复
- 物业电工安全操作培训课件
- 国企员工行为规范管理制度
- 中学语文课本剧《杜甫诗话》剧本
- 教师论文写作培训课件
评论
0/150
提交评论