[信息与通信]第3章80C51的指令系统.ppt
《[信息与通信]第3章80C51的指令系统.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第3章80C51的指令系统.ppt(70页珍藏版)》请在三一文库上搜索。
1、第3章 80C51的指令系统,指令格式及常用符号,3.1,80C51的寻址方式,3.2,数据传送指令 (29条),3.3,算数运算指令 (24条),3.4,逻辑运算与循环类指令(24条),3.5,控制转移类指令 (17条),3.6,位操作类指令 (17条),3.7,指令: CPU按照人们的意图完成某种操作的命令。 指令系统: 一台计算机的CPU所能执行的全部指令的集合。 机器指令:计算机能直接识别和执行的指令,是二进制编码(特点:运行速度快,占内存容量小,比高级语言编写的程序效率高得多,故广泛用于实时控制;指令本身是二进制代码,记忆困难)。 符号指令:采用助记符和其他一些符号来编写指令程序(经
2、过一种称为汇编程序的软件的翻译,可变成机器可执行的目标程序)。,(1)指令执行时间短。单机器周期指令64条,双机器周期指令45条,四机器周期指令2条(乘法和除法指令)。 (2)指令编码字节少。单字节指令49条,双字节指令45,三字节指令17条。 (3)具有丰富的位操作指令。,80C51单片机指令系统特点(共111条),3.1 指令格式及常用符号,3.1.1 机器指令的字节编码形式,8位编码仅为操作码,单字节指令(49条),如:INC A 编码为:,即:04H,8位编码含操作码和寄存器编码,如:MOV A,R0 编码为:,即:E8H,操作码,操作码,寄存器编码,在80C51指令中,一般指令主要由
3、操作码、操作数组成。,指令中“A”表示累加器,“ACC”表示累加器对应的地址(E0H)。,双字节指令(45条),三字节指令(17条),如:MOV A,#50H 编码为:,即:74H 50H,如:MOV 20H,#50H 编码为:,即:75H 20H 50H,操作码,操作数,操作码,操作数,操作数,书写格式,注意: 操作助记符不能缺少 操作数个数可为:1、2、3个 2个操作数的指令,目的操作数在左边,一般格式 操作助记符 目的操作数,源操作数;注释,3.1.2 符号指令的书写格式,比较:MOV A,#30H MOV ACC,#30H,机器码:74H、30H 机器码:75H、E0H、30H,描述符
4、号,Rn(n=07)-当前工作寄存器组中的寄存器R0R7之一 Ri(i=0,1)-当前工作寄存器组中的寄存器R0或R1 -间址寄存器前缀 #data -8位立即数 #data16-16位立即数 direct-片内低128个RAM单元地址及SFR地址 addr11-11位目的地址,用于2K范围内寻址 addr16-16位目的地址,用于64K范围内寻址 rel-8位地址偏移量,范围:128127 bit-片内RAM位地址、SFR的位地址 / -位操作数的取反操作前缀 ()-表示 地址单元或寄存器中的内容 ()-表示以单元或寄存器内容为地址 所指定单元的内容 -数据传送方向 -数据交换,3.2 80
5、C51的寻址方式,在程序行中,操作码代表了该句指令的功能,而功能的对象却由操作数决定,由操作数指出参与运算的数或该数所在的地址。指令中所规定的寻找(源)操作数或指令转移地址的方式叫寻址方式。寻址方式与计算机的存储空间结构是密切相关的。灵活运用各种寻址方式,可以大大的提高程序的运行效率。,80C51基本七种寻址方式,3.2.1 寄存器寻址,操作数在寄存器中 寻址空间 R0R7 A(使用符号ACC表示累加器时属于直接寻址) B(以AB寄存器对形式出现) DPTR,特点 传送和执行速度快,【例】若(R0)=30H,,执行MOV A,R0后,(A)=30H,3.2.2 直接寻址,操作码后字节存放的是操
6、作数的地址 寻址空间 片内RAM低128字节 SFR(符号形式) 例:MOV A,90H MOV A,P1,另一类直接寻址是转移目标地址的寻址。如: LJMP ADDR16 LJMP ADDR11,【例】若(50H)=3AH ,,执行MOV A,50H后,(A)=3AH,3.2.3 寄存器间接寻址,寄存器中的内容是操作数的地址 寻址空间 片内RAM的00H-7FH单元中的数据 (Ri、SP) 片外RAM的00H-7FH单元中的数据 (Ri) 片外RAM的全部64K单元 (DPTR),【例】若(R0)=30H, (30H)=5AH,执行MOV A,R0后, (A)=5AH,片内:MOV 片外:M
7、OVX,寄存器间址指令不能用于寻址特殊功能寄存器; 寄存器间接寻址用符号“”。,MOV A, R0; (R0)A,MOV A, R0; R0A,3.2.4 立即寻址,操作数在指令编码中 操作数是一个8位二进制数或16位二进制数,操作码后面的内容就是操作数,用“#”表示,指令中出现的操作数称为立即数。 寻址空间 ROM,对于MOV DPTR,#2100H指令,操作码为90H 立即数高8位“21H”装入DPH,低8位“00H”装入DPL,【例】执行MOV A,#50H,结果:(A)=50H,比较:MOV A,#50H,3.2.5 变址寻址(基址寄存器+变址寄存器间接寻址),操作数地址:基地址+偏移
8、量 以某个寄存器的内容为基地址,在这个基本地址的基础上加上地址偏移量才是真正的操作数地址,并将这个地址单元的内容作为指令的操作数。 寻址空间:ROM 80C51 有两个基址寄存器:DPTR、PC 地址偏移量是A的内容,应为8位无符号数,变址寻址还用于跳转指令,如JMP A+DPTR,MOVC A , A+DPTR; (DPTR+A)A,MOVC A , A+PC; PC+1 PC, (A+ PC) A,例:MOVC A,A+DPTR 设 DPTR=2000H,A=E0H,20E0H,47,指令代码,机器码:93H,例:MOVC A,A+PC 设 A=E0H,2121H,45,当前PC,指令代码
9、,机器码:83H,3.2.6 相对寻址,用于跳转指令,实现程序分支 以当前PC的内容作为基地址,加上指令中给定的偏移量rel形成实际的转移地址(一般将相对转移指令操作码所在的地址为源地址,转移后的地址为目的地址)。 相对地址偏移量rel,是一个带符号的8位二进制补码,取 值范围为-128+127 80C51有两类相对转移指令:双字节相对转移指令和三字节 相对转移指令 目的地址=源地址+2或3(相对转移指令字节数)+rel,二字节的转移指令 SJMP rel; (PC+2 +rel) PC (相对转移指令),PC: 2000H 机器码: 8054H (rel=54H),目的地址=2000H+02
10、H+54H=2056H,例:SJMP rel,2056H,2056H ,2002H,54H,2002H,指令代码,当前PC,【例】若rel为75H,PSW.7为1,JC rel存于1000H开始的单元。,执行JC rel指令后,程序将跳转到1077H单元取指令并执行。,编程时,常将目标地址用一个自定义的符号地址表示。,3.2.7 位寻址,寻址位数据(对位地址中的内容进行操作的寻址方式) 寻址空间 片内RAM位空间 SFR位空间,【例】位地址00H内容为1,MOV C,00H执行后,位地址PSW.7的内容为1。,位寻址方式实质属于位的直接寻址。,例:CLR ACC.0,3.3 数据传送类指令(2
11、9条),一般不影响标志寄存器PSW的状态(除了目的操作 数为ACC的指令影响奇偶标志P),传送类指令有两大类 一般传送( MOV ) 特殊传送,如: MOVC MOVX PUSH、POP XCH、XCHD SWAP,通用格式: MOV , 属“复制”性质,而不是“搬家”。,3.3.1 一般传送指令,16位传送(仅1条),MOV DPTR,#data16; DPTR data16,例:执行指令 MOV DPTR,#1234H 后 (DPH)=12H,(DPL)=34H。,目的字节,源字节,源字节与目的字节不同(除direct外) Rn寄存器寻址与寄存器间接寻址(R1间不相互传送),以A为目的,【
12、例】若(R1)= 20H,(20H)= 55H。执行指令 MOV A,R1 后,(A)= 55H。,8位传送,以Rn为目的,【例】执行指令 MOV R6,#50H 后,(R6)= 50H,以direct为目的,【例】若(R1)=50H,(50H)=18H,执行指令 MOV 40H,R1 后,(40H)=18H,SFR空间只能采用直接寻址方式访问。形式上通常采用寄存器符号名称代替具体地址。,MOV SBUF,A MOV 99H,A,汇编后目标代码:F5H,99H,以Ri为目的,【例】若(R1)=30H,(A)=20H,执行指令 MOV R1,A 后,(30H)=20H。,3.3.2 特殊传送指令
13、,以DPTR内容为基址,读ROM中常数表项指令MOVC,ROM中可以存放程序代码,还经常存放常数表,MOVC A,A+DPTR;A (A)+(DPTR),以PC内容为基址,MOVC A,A+PC ;PC PC+1, A(A+ PC),常数表存放约束小,称为远程查表指令。占用DPTR,常数表存放约束大,称为近程查表指令。不占用DPTR,MOVC、MOVX、PUSH、POP、XCH、XCHD、SWAP 。,读片外RAM,读片外RAM及接口单元数据的指令MOVX,片外RAM中经常存放数据采集与处理的中间数据,MOVX A,DPTR ;A (DPTR) MOVX A,Ri ;A (Ri),写片外RAM
14、,MOVX DPTR,A ;(DPTR)A MOVX Ri,A ;(Ri)A,注意:用Ri寻址时,高8位地址由P2口提供,1.在80C51中,与外部存储器RAM打交道的只可以是A累加器。 所有需要送入外部RAM的数据必需要通过A送去,而所有 要读入的外部RAM中的数据也必需通过A读入。 内外部RAM的区别:内部RAM间可以直接进行数据的传 递,而外部则不行。 例如,要将外部RAM中某一单元(设为0100H单元的数据) 送入另一个单元(设为0200H单元),也必须先将0100H 单元中的内容读入A,然后再送到0200H单元中去。,说明,2.使用时应先将要读或写的地址送入DPTR或Ri中,然后再用
15、 读写命令。 例:将外部RAM中100H单元中的内容送入外部RAM中200H单元中。 MOV DPTR,#0100H MOVX A,DPTR MOV DPTR,#0200H MOVX DPTR,A,注意:片外扩展的I/O接口也要利用读、写片外RAM指令进行数据的输入/输出。,【例】若(P2)=20H,(R1)=48H,(A)=66H,执行指令 MOVX R1,A 后,外部RAM单元2048H的内容为66H。,入栈指令PUSH,堆栈操作指令PUSH和POP,堆栈是一片存储区,遵循“后进先出”原则,栈顶由SP指示。 80C51的堆栈设在片内RAM低端的128个单元,向上生长(地址增大)。,PUSH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息 通信 80 C51 指令系统
链接地址:https://www.31doc.com/p-2001070.html