MCS-51系列指令系统(09)课件

上传人:woxinch****an2018 文档编号:44691309 上传时间:2018-06-14 格式:PPT 页数:80 大小:1.65MB
返回 下载 相关 举报
MCS-51系列指令系统(09)课件_第1页
第1页 / 共80页
MCS-51系列指令系统(09)课件_第2页
第2页 / 共80页
MCS-51系列指令系统(09)课件_第3页
第3页 / 共80页
MCS-51系列指令系统(09)课件_第4页
第4页 / 共80页
MCS-51系列指令系统(09)课件_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《MCS-51系列指令系统(09)课件》由会员分享,可在线阅读,更多相关《MCS-51系列指令系统(09)课件(80页珍藏版)》请在金锄头文库上搜索。

1、第三章 MCS-51系列指令系统3.1 基本概念 3.2 指令格式 3.3 寻址方式 3.4 数据操作和指令类型 3.5 数据传送指令 3.6 算术运算指令 3.7 逻辑运算指令 3.8 位操作指令 3.9 控制转移指令 3.10 CPU执行指令的时序 3.11指令的小结3.1 基本概念一机器指令用一组二进制的编码来描述计算机的某一个 操作,这组编码就是机器指令。计算机的指令系统是一套描述所有计算机的 操作的编码,这套二进制编码称为机器码语言。 二汇编指令用一种符号来描述计算机的某一个操作,这 种符号就是汇编指令。 用汇编指令来描述计 算机的指令系统,这套汇编指令称为汇编语言。 三汇编程序将汇

2、编语言指令编译成机器语言指令的程序 ,称为汇编程序。3.1 基本概念四源程序和目标程序 用汇编语言编制的应用程序称为汇编语言程 序,简称源程序。将源程序汇编成机器码程序,这机器码程序 称为目标程序。 五伪指令:汇编命令在汇编语言程序汇编过程需要一些汇编操作 ,指出这些汇编操作的指令称为伪指令。 3.2 指令格式一汇编语言指令格式操作码:表示指令的功能。 操作数:数据和地址,操作数可以是1、2、3个,或者没有; 数据以09数字开头,如遇到16进制数AF,则前面加0。例4.1 MOV A,#34H MOV A,#0A3HLJMP 8100H标号和注释: 带标号和注释后的程序行。标号:操作码 操作数

3、1),操作数2,操作数3;注释操作码操作数3.2 指令格式二常用的缩写符号 A 累加器ACC AB 累加器ACC和寄存器B组成的寄存器对 direct 直接地址,取值为00FFH,其中80H0FFH可用特 殊寄存器名表示 #data 立即数,表示一个常数00FFH 间接寻址 传送 寄存器 () 寄存器的内容 () 由寄存器寻址的存储器单元内容 rrr 在指令编码中表示寄存器Rn的号码,R0R7对应的 号码是000111 $ 指本条指令起始地址 rel 相对偏移量,其值为1281273.3 寻址方式寻找操作数的方式,即寻找数据的方式和寻找地址的方式 。 一立即寻址:指令中直接给出操作数本身。例4

4、.6MOV A,#70H;该指令是将常数70H复制至累加器ACC中,70H就称为 立即数。指令代码见下图。该指令中70H又称为源操作数,A称为目的操作数。例4.7 LJMP 9010H;该指令是将程序跳转到9010H位置,操作数9010H是地 址,把它送入程序计数器PC。指令代码为02H、90H、10H 。 程序存储器 01110100 01110000 PC PC+170H操作码立即数ACC3.3 寻址方式二直接寻址:指令中直接给出操作数的地址。例4.8 MOV A,70H; 指令代码为,E5H、70H;内部RAM地址为70H的内容 可以作为一个操作数。若执行前存储单元70H中的内容为 0D

5、FH,则执行后ACC的内容为0DFH。如下图所示其地址的形成如图4-2注意:直接寻址方式能访问以下三种存储空间l 特殊功能寄存器(只能直接寻址)l内部数据存储器的低128字节l位地址空间 程序存储器 11100101 01110000 PC PC+1操作码直接地址内部RAM0DFH70H0DFHACC3.3 寻址方式三寄存器寻址:指令中给出操作数所在的寄存器地址,即操作数在寄存 器中。例4.9MOV A,R3;指令代码为, 11101rrr, 即11101011 。若执行前R3中的 内容为0DFH,则执行后ACC的内容为0DFH。如下图所示其地址形成如图4-1所示 注意:能用作寄存器寻址的寄存

6、器有以下几个R0R7、ACC 、B、 DPTR、C 程序存储器 11101011 XX PC PC+1操作码内部RAM0DFHR30DFHACC3.3 寻址方式 四寄存器间接寻址: 指令中给出的寄存器,其内容不是操作数,而是操作数地 址。用表示 例4.10MOV A,R1;若执行前R1的内容为30H,30H的内容为56H,ACC的内容 为78H。则执行后ACC的内容为56H。如下图所示这种寻址方式的地址构成如图4-3所示 注意:1) 能用作间接寻址的寄存器有:R0、R1、DPTR2) R0、R1能寻找内部存储器和外部存储器 00H0FFH3) DPTR只能寻找外部存储器单元0000H0FFFF

7、H 程序存储器 11100111 XX PC PC+1操作码内部RAM30HR156HACCXX 56H30H3.3 寻址方式四寄存器间接寻址:这种寻址方式适用于处理批量数据。例4.11要求将以30H为首地址的内部数据存储器中的10 个数据a0a9,传送到以40H为首地址的内部数据存储器中去 。如果按直接寻址的方式编程序,则如下所示: MOV 40H,30H MOV 41H,31H MOV 42H,32H : MOV 49H,39H 3.3 寻址方式四寄存器间接寻址:如果按寄存器间接寻址的方式编程序,则如下所示: MOV R0,#30H MOV R1,#40H MOV R7,#10LOOP:M

8、OV A,R0MOV R1, ACCINCR0 INCR1 DJNZ R7,LOOP 3.3 寻址方式五基寄存器加变址寄存器间接寻址:这种寻址方式以PC程序计数器或DPTR数据指针为基 寄存器,以ACC累加器为变址寄存器,两者相加的结果就 是操作数地址。 注意:所寻找的存储单元是程序存储器例4.12 MOVC A,A+PC;源操作数地址=(PC)+(ACC)例4.13 MOVC A,A+DPTR;源操作数地址=(DPTR)+(ACC)其中变址寄存器ACC的内容是一个正整数。 3.3 寻址方式六相对寻址:操作数是一个地址偏移量e,实际转移地址为当前PC值 加上偏移量e例4.14 SJMP e ;

9、转移地址=当前PC值+e注意:1)e是一个偏移量,用8位二进制数的补码表示。2)当前PC值是指该转移指令的后一条指令的地址当前PC值=340DH+2=340FH,若e=05H,该指令地址为 340DH,则转移地址=340FH+05H=3414H当前PC值=1005H+2=1007H,若e=80H,该指令地址为 1005H,则转移地址=1007H+80H=0F87H,其中80H实际是 0FF80H,其执行过程如图4-5所示 七隐含寻址:指令码中不含操作数。例4.15 RET;子程序返回指令。 3.4 数据操作和指令类型一数据操作数据操作是指:数据传送,算术运算,逻辑运算,布尔 处理等操作。PSW

10、用于存放数据被操作后的状态。PSW的格式和功能lCY位:进位/借位标志。 lAC位:半进位/半借位标志。 lOV位:溢出标志,用于补码运算。 lP位 :奇偶标志,仅表示ACC中1的个数奇偶特性。 lRS1位、RS0位:工作寄存器区选择位。 lF1位、F0位: 用户程序标志位。 D7D6D5D4D3D2D1D0CYACF0RS1RS2OVF1PPSW3.4 数据操作和指令类型 二指令类型 按功能分: l数据传送指令,共28条 l算术运算指令,共24条 l逻辑运算指令,共25条l位操作指令 ,共17条 l控制指令 ,共17条 按指令长度分: l单字节指令 ,共49条l双字节指令 ,共45条l3字节

11、指令 ,共17条 按指令执行时间分: l1个机器周期指令 ,共64条l2个机器周期指令 ,共45条 l4个机器周期指令 ,共2条 3.5 数据传送指令数据传送指令的功能是复制数据,是最常用的一类指 令。数据传送的对象有累加器A、工作寄存器R0R7、内 部数据存储器、外部数据存储器和程序存储器。它们之间 关系如图4-6所示。 3.5 数据传送指令一以累加器ACC为目的操作数的指令MOV A,Rn;ACC (Rn),Rn为:R0R7 MOV A,direct;ACC(direct),direct为:00H 0FFH MOV A,Ri;ACC(Ri),Ri为:R0、R1MOV A,#data;ACC

12、 data ,data为:00H0FFH例:MOV A,#38H;若执行前,(A)=90H;执行后 ,(A)=38H,(P)=1。 二 Rn为目的操作数的指令MOVRn,A;Rn (ACC)MOVRn,direct;Rn (direct)MOVRn,#data;Rn data例:MOV R2,A;若执行前,(A)=90H;执行后, (R2)=90H。 3.5 数据传送指令三以直接寻址的单元为目的操作数的指令MOV direct,A; 指令代码为:0F5H directMOV direct,Rn; 指令代码为:88H8FH directMOV direct1,direct2;指令代码为:85H

13、direct2 direct1MOV direct,Ri; 指令代码为:86H87H directMOV direct,#data; 指令代码为:75H direct data 四以寄存器间接寻址的单元为目的操作数的指令MOVRi,AMOVRi,directMOVRi,#data例4.16MOV R0, 35H;若执行前,(R0)=40H,(40H)=18H,(35H)=99H; 则执行后,(R0)=40H,(40H)=99H,(35H)=99H。 3.5 数据传送指令 五16位数据传送指令MOV DPTR,#data16;指令代码为:90H,高位立即数,低位立即数DPTR 为数据指针,dat

14、a16一般为一个地址;DPTR可 以分成两个8位寄存器,DPH和DPL。例4.17 MOV DPTR, #9100H; 执行后,(DPTR)=9100H,(DPH)=91H,(DPL)=00H。例4.18设(70H)=60H,(60H)=20H,(P1)=B7H,执 行下面程序MOVR0,#70H; (R0)=70HMOVA,R0; (A)=60HMOVR1,A; (R1)=60HMOVB,R1; (B)=20HMOVR0,P1; (70H)=B7H 3.5 数据传送指令六堆栈操作指令 1进栈指令:PUSHdirect;指令代码为:0C0H direct先将堆栈指针SP加1,然后将(direct)送入(SP)例4.19 设(SP)=60H,(ACC)=30H,(B)=70H, 堆栈的执行前内容如下表所示执行下面程序后的内容如下表所示PUSH ACC;(SP)=(SP)+1=61H,(61H)=30H;指令代码为0C0H E0HPUSH B;(SP)=(SP)+1=62H,(62H)=70H;指令代码为0C0H F0H (SP)+1=62H70H (SP)+1=61H30H (SP)=60H34H(SP)+1=62H80H (SP)+1=61H00H (SP)=60H34H执行前执

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

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