指令系统及汇编语言

上传人:宝路 文档编号:47866656 上传时间:2018-07-05 格式:PPT 页数:50 大小:724KB
返回 下载 相关 举报
指令系统及汇编语言_第1页
第1页 / 共50页
指令系统及汇编语言_第2页
第2页 / 共50页
指令系统及汇编语言_第3页
第3页 / 共50页
指令系统及汇编语言_第4页
第4页 / 共50页
指令系统及汇编语言_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《指令系统及汇编语言》由会员分享,可在线阅读,更多相关《指令系统及汇编语言(50页珍藏版)》请在金锄头文库上搜索。

1、第3章 指令系统及汇编语言程序设计 本章要点v 80C51指令的基本格式 v 80C51指令功能分类 v 指令系统中的常用符号 v 80C51指令系统的七种寻址方式(以下内容自学) v 数据传送类指令 v 算术运算类指令 v 逻辑运算及移位指令 v 位操作类指令 v 控制转移类指令 80C51汇编语言语句结构的基本格式 伪指令的功能和应用汇编的概念程序设计的步骤和基本方法 (以下内容自学)顺序程序分支程序循环程序查表程序散转程序3-1 指令系统基本概念标号:操作码 操作数;注释 一、指令基本格式 标号:指令的符号地址。 用于一段功能程序的识别标记或控制 转移地址。 指令前的标号代表该指令的地址

2、,是用符号表示的地址。 一般用英文字母和数字组成。 标号必须用冒号“ :”与操作码分隔。 操作码:表示指令的操作功能。 操作码用助记符表示,它代表了指令 的操作功能。 操作码是指令的必需部分,是指令的核心,不可缺少。 操作数:参加操作的数据或数据地址。 操作数与操作码之间用空格分隔,操作数与 操作数之间用逗号“,”分隔。 操作数可以是数据,也可以是数据的地址、数 据地址的地址或操作数的其他信息。 操作数可分为目的操作数和源操作数。 操作数可用二进制数、十进制数或十六进制 数表示。 操作数的个数可以是03个。 注释:指令功能说明。 注释属于非必需项,是为便于阅读, 对指令功能作的说明和注解。 注

3、释必须以“;”开始。二、指令分类按指令功能分类:可分为数据传送类、算术运算类、逻辑运算类、位操作类和控制转移类 等5大类指令。80C51共有111条指令。 按指令长度分类:可分为1字节、2字节和3字节指令。 按指令执行时间分类:1机器周期、2机器周期和4机器周期指令。三、指令系统中的常用符号 bit:位地址。 代表片内RAM中的可寻址位00H7FH及SFR中的可寻址位。 #:立即数符。 #data:8位立即数;#data16:16位立即数。 direct:8位直接地址 代表内RAM 00H7FH或SFR的80HFFH 。 :间接寻址符。 如Ri,DPTR,A+PC,A+DPTR。 addr11

4、:11位目的地址。addr16:16位目的地址。 rel:带符号的8位偏移地址。 用于转移指令,其范围是相对于下一条指令第1字节地址 的-128+127个字节。四、寻址方式【例】寻址就是寻找操作数的地址。 立即寻址立即寻址是直接给出操作数,操作数 前有立即数符“ # ”。MOV A,#30H ;将立即数30H传送至A中 MOV DPTR,#5678H ;将立即数5678H传送至DPTR 直接寻址MOV A,3AH ;将内RAM 3AH单元中的数据传送至A中MOV A,P0 ;将特殊功能寄存器P0口中的数据传送至A中说明:3AH和P0是以direct形式出现的直接地址直接寻址是给出操作数的直接地

5、址。 直接寻址范围为内RAM 128B和特殊功能寄 存器。 【例】 寄存器寻址MOV A,R0 ;将R0中的数据传送至A中寄存器寻址的操作数在规定的寄存器中。规定的寄存器有: 工作寄存器R0R7 累加器A 双字节AB 数据指针DPTR 位累加器Cy这些被寻址寄存器中的内容就是操作数 【例】 寄存器间接寻址MOV A,R0 ;将以R0中内容为地址的存储单元中的数据传送至A中MOVX A,DPTR;将外RAM DPTR所指存储单元中的数据传送至A中 PUSH PSW ;将PSW中数据传送至堆栈指针SP所指的存储单元中间接寻址是根据操作数地址的地址寻找 操作数。间接寻址用间址符“”作为前缀。 【例】

6、 变址寻址MOVC A,A+DPTR 【例】在变址寻址中,操作数地址基址变址用于读ROM数据操作。;将A的内容与DPTR内容相加, 得到一个新地址,从该地址 ROM中读取数据送入A中。相对寻址一般用于相对转移指令, 转移目的地址当前PC值相对偏移量rel。;将位地址07H(字节地址20H中最 高位)中的数据传送至进位位Cy。 相对寻址 位寻址位寻址是对内RAM和特殊功能寄存器中的 可寻址位进行操作的寻址方式。【例】MOV C,07H3-2 指令系统(自学 ) MOV A,Rn ;RnA ,n=07 MOV A,Ri ;(Ri)A,i=0、1 MOV A,direct ;(direct)A MO

7、V A,#data ;dataA 一、数据传送类指令 内RAM数据传送指令 以累加器A为目的字节的传送指令(4条) MOV Rn,A ;ARn,n=07 MOV Rn,direct;(direct)Rn,n=07 MOV Rn,#data ;dataRn,n=07 以工作寄存器Rn为目的字节 的传送指令(3条) 以直接地址为目的字节的传送指令(5条) MOV direct,A ;A(direct) MOV direct,Rn ;Rn(direct),n=07 MOV direct,Ri ;(Ri)(direct),i=0、1 MOV direct1,direct2;(direct2)(dire

8、ct1) MOV direct,#data ;data(direct) 以寄存器间址为目的字节的传送指令(3条) MOV Ri,A ;A(Ri),i=0、1 MOV Ri,direct;(direct)(Ri),i=0、1 MOV Ri,#data ;data(Ri),i=0、1 16位数据传送指令MOV DPTR,#data16 ;data16DPTR【例】MOV DPTR,#1234H ;DPTR=1234H该指令也可以用两条8位数据传送指令实现: MOV DPH,#12H ;DPH=12H MOV DPL,#34H ;DPL=34H,DPTR=1234H MOVX A,Ri ;(Ri)A

9、,i=0、1 MOVX A,DPTR ;(DPTR)A MOVX Ri,A ;A(Ri),i=0、1 MOVX DATR,A ;A(DATR) 外RAM传送指令(4条) 读ROM指令(2条)内RAM(包括特殊功能寄存器): 用MOV指令传送;外RAM: 用MOVX指令传送;ROM: 用MOVC指令传送。 MOVC A,A+DPTR ;(A+DPTR)A MOVC A,A+PC ;PC+1PC,(A+PC)A三个不同的存储空间用三种不同的指令传送: PUSH direct ;SP+1SP,(direct)(SP) POP direct ;(SP)(direct),SP-1SP 堆栈操作指令(2条

10、) PUSH为入栈指令 例PUSH 30H;(30H)=2BH,具体操作是: 先将堆栈指针SP的内容(0FH)加1,指向堆栈顶的一 个空单元,此时SP=10H; 然后将指令指定的直接寻址单元30H中的数据(2BH) 送到该空单元中。 POP为出栈指令 例 POP 40H ;(40H)=4CH,具体操作是: 先将SP所指单元0FH(栈顶地址)中的数据(4CH) 弹出,送到指定的内RAM单元40H,(40H)=4CH; 然后SP-1SP,SP=0EH,SP仍指向栈顶地址。 交换指令(5条) XCH A,Rn ; ARn,n=07 XCH A,Ri ; A(Ri),i=0、1 XCH A,direc

11、t ; A(direct)SWAP A ; A74A30 字节交换指令 半字节交换指令XCHD A,Ri ; A30(Ri)30高4位不变。i=0、1 累加器高低四位互换 ADD A,Rn ;A+RnA(n=07)有进位,Cy=1;无进位,Cy=0 ADD A,Ri ;A+(Ri)A(i=0、1)有进位,Cy=1;无进位,Cy=0 ADD A,direct ;A+(direct)A有进位,Cy=1;无进位,Cy=0 ADD A,#data ;A+dataA有进位,Cy=1;无进位,Cy=0 二、算术运算类指令 加法指令 不带Cy加法指令(4条) 带Cy加法指令(4条) ADDC A,Rn ;A

12、+Rn+CyA(n=07)有进位,Cy=1;无进位,Cy=0 ADDC A,Ri ;A+(Ri)+CyA(i=0、1)有进位,Cy=1;无进位,Cy=0 ADDC A,direct ;A+(direct)+CyA有进位,Cy=1;无进位,Cy=0 ADDC A,#data ;A+data+CyA有进位,Cy=1;无进位,Cy=0 减法指令(4条) SUBB A,Rn ; A-Rn-CyA,(n=07), 有借位,Cy=1;无借位,Cy=0 SUBB A,Ri ; A-(Ri)-CyA,(n=01), 有借位,Cy=1;无借位,Cy=0 SUBB A,direct; A-direct-CyA,

13、有借位,Cy=1;无借位,Cy=0 SUBB A,#data ; A-data-CyA, 有借位,Cy=1;无借位,Cy=0 INC A;A+1A INC Rn ;Rn+1Rn,n=07 INC Ri;(Ri)+1(Ri), i=0、1 INC direct;(direct)+1(direct) INC DPTR;DPTR+1DPTR 加1减1指令 加1指令(5条) 减1指令(4条) DEC A ;A-1A DEC Rn ;Rn-1Rn, n=07 DEC Ri ;(Ri)-1(Ri), i=0、1 DEC direct ;(direct)-1(direct)加1减1指令涉及 A时,会影响P,

14、但不影响 其他标志位。 DIV AB ;(AB)商A,余数BCy=0,OV=0 BCD码调整指令 DA A 功能:对加法运算结果进行BCD码调整。 乘除法指令 乘法指令(1条)MUL AB ; ABBA 除法指令(1条)三、逻辑运算及移位指令 ANL A,Rn ;ARnA ANL A,Ri ;A(Ri)A ANL A,#data ;AdataA ANL A,direct ;A(direct)A ANL direct,A ;(direct)Adirect ANL direct,#data;(direct)datadirect 逻辑“与”运算指令(6条) 逻辑“或”运算指令(6条) ORL A,Rn ;ARnA ORL A,Ri ;A(Ri)A ORL A,#data ;AdataA ORL A,direct ;A(d

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号