《第3章__MCS-51系列单片机指令系统》-课件设计(公开).pptVIP

  • 17
  • 0
  • 约2.45万字
  • 约 122页
  • 2019-01-11 发布于广西
  • 举报

《第3章__MCS-51系列单片机指令系统》-课件设计(公开).ppt

第3章 MCS-51系列单片机指令系统 基本概念 计算机只能识别二进制码组成的机器码,由机器码组成的语言称机器语言。 将代表实际操作功能的二进制码用各种助记符来表示,用助记符表示的语言称为汇编语言。 一台计算机所能执行的全部指令的集合称为这个CPU的指令系统。 不同型号的计算机,其指令系统是不同的。 3.1.1 指令的基本格式 机器语言指令格式 机器语言指令是一种二进制代码,有单字节、双字节、三字节三种指令格式。汇编语言指令中操作码和操作数是指令主体,称为指令可执行部分,指令表中可查出对应指令代码。 (1)单字节指令格式:操作码 【例】汇编语言指令 INC A 对应的机器语言是: 该指令功能是对累加器内容加1,操作的对象和内容明确,本身隐含了操作数。 (2)双字节指令格式:操作码 操作数 【例】汇编语言指令 MOV A,#74H 对应的机器语言是: 01110100 第一个字节是操作码,代表将下一个机器码作为数据送给累加器A,第二个字节是操作数。 (3)三字节指令格式:操作码 第一操作数 第二操作数 【例】汇编语言指令 MOV 30H,#7AH 对应的机器语言是: 00110000第一个是操作码,代表将一个操作数送至某存储单元,第二个是操作数的地址,第三个是操作数。 3.1.2 单片机指令分类 判断下列常用指令属于哪一类指令? MOV__move传送 XCH__exchange交换 ANL__and logic与逻辑运算 XRL__exclusive or异或运算 RR__rotate right右循环 MUL__Multiply乘法 SJMP__short jump短转移 RET__return 子程序返回 指令中,一般不直接给出参与传送或运算的操作数本身,而是给出操作数所在的寄存器、存储单元或I/O口地址。CPU根据指令给出的地址信息求出操作数的地址,按照求出的地址对操作数进行存取操作。 寻址就是寻找操作数的地址。 寻找操作数地址的方式,称为操作数地址的寻址方式,简称寻址方式。 3.2.1 立即寻址方式 立即寻址就是在指令中直接给出操作数的寻址方式。 指令中给出的操作数也称立即数,立即数前加“#”号标志,以区别直接寻址中的直接地址。 16位立即数传送指令“MOV DPTR,#datal6”,其中#data16是一个16位立即数。 例如,指令MOV DPTR,#2030H,将16位立即数2030H传送给16位寄存器数据指针DPTR, 【例】 MOV A,#7AH 上述指令将数7AH送到A中 执行后A=7AH,过程如右图。 3.2.2 直接寻址方式 直接寻址方式就是在指令中直接给出操作数所在存储单元的地址。此时,指令中操作数部分是操作数所在地址。 例如指令:MOV A,30H,其功能是将片内RAM中30H单元的内容传送至累加器A。 直接寻址方式的寻址范围是内部RAM,具体包括: 片内RAM的低128个单元——在指令中以直接地址给出。 特殊功能寄存器(SFR)——既可使用它们的地址,也可使用它们的名字。 例如指令:MOV A,P1,是把SFR中P1口内容送到A, 它又可以写成: MOV A,90H,其中90H是P1口的地址。 直接寻址方式是访问特殊功能寄存器的唯一方法。 直接寻址方式 【例】 设内RAM 7AH单元中的内容为6DH,则执行指令MOV A,7AH 后,A中的内容为6DH,即A=6DH 3.2.3 寄存器寻址方式 寄存器寻址就是操作数存放在寄存器中,指令中指定的寄存器的内容就是操作数。 在寄存器寻址方式中以符号名称来表示寄存器。 例如指令:MOV A,R0,其功能是把寄存器R0的内容传送至累加器A中。 寄存器寻址方式的寻址范围包括: 通用工作寄存器——有4组共32个通用工作寄存器,每组名称都为R0-R7.但是寄存器寻址只能使用当前寄存器组。 部分特殊功能寄存器——累加器A、寄存器B、DPTR寄存器。 【例】 如果R1=56H,则执行指令 MOV A,R1 后,累加器A=56H。 3.2.4 寄存器间接寻址方式 寄存器间接寻址是把指定寄存器的内容作为操作数地址,该地址所指定的单元内容作为操作数。 为了区分寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,所用到的寄存器的前面要加间接寻址符“@”。 通过间接寻址寄存器R0、R1和数据指针DPTR可以作为间接寻址寄存器。 寻址范围: 通过R0、R1可寻址片内低128B单元内容或者是片外RAM 256B的内容; 通过数据指针DPTR,可寻址外部数据存储器64KB空间 【例】 如果R0=30H,(30H)=B3H,则执行指令

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档