#单片机的指令系统概述

>指令系统概述


  • 基本知识

    1. 包括功能、时间、空间三种属性,每条指令指明具体功能,一条指令执行所用的时间,指令占用的字节数
    2. 机器语言指令、汇编语言指令。机器语言的复杂指令集,111条。
    3. 每条指令由操作码和操作数组成。
  • 汇编

    1. [标号:] 操作码助记符 [目的操作数][,源操作数][;注释]
    2. 标号要求:非关键字,字符开头,字符数字组成,不超过八个字符,行号位于行首

>寻址方式


地址给出的方式
操作数的定义:表示参加操作的数的本身或者操作数所在的地址。这里的操作数更像是备操作的数据,如果是一个地址时,就像指针指向的数据。暂且理解为动作和动作操纵的对象吧!

  • 立即寻址
    操作数直接出现在指令当中,作为操作码的一部分。#号操作数。
    MOV A,#80H;
  • 直接寻址
    直接使用数所在单元的地址找到该操作数,direct。
    MOV A,00H;
  • 寄存器寻址
    寄存器中存有操作数,Rn表示工作中的寄存器组,DPTR,A,B。direct。
    MOV A,RO;
  • 寄存器间接寻址
    寄存器中存有操作数的地址,寄存器起到地址指针的作用。
    MOV A,@R0;R0作为地址,将其指向的数据传送到RAM中
    MOVX A,@DPTR;DPTR作为地址,将其指向的数据传到RAM中
  • 变址寻址
    基址寄存器和变址寄存器的和,基址寄存器(只能是指令计数器pc和数据指针DPTR)@+。
    目的是用来访问程序存储器中的常数表。
    MOVE A,@A+DPTR;数据指针可以任意更改
    MOVE A,@A+PC;PC示取指令的pc+1,不能任意更改
  • 相对寻址
    当前的PC值加上一个相对值形成的地址+
    指令的第二个字节用八位二进制补码表示,用于跳转当前执行的程序。
    PC中的当前地址称为基地址,第二个字节的数据称为偏移量
    目的地址=指令存放地址+指令字节数+rel
  • 位寻址
    对RAM的位寻址区或可为寻址的特殊功能寄存器的某些位进行操纵。
    SETB 3DH;将27H.5 位置置为1。

Rn 表示工作寄存器之一
Ri 工作寄存器RO或R1
#data 表示8位立即数
#data16 表示16位立即数
direct 表示RAM或SFR的地址
bit 片内RAM或SFR的位地址
addr11 11位目的地址
addr16 16位目的地址
rel 补码形式的8位地址偏移量
/ 位操作指令,该位求反后参与操作,不影响该位
X RAM的直接地址
(X) 表示地质单元的内容
-> 左边内容送入右边内容


[1] CISC complex instruction set computer 复杂指令计算机
[2] RISC reduced instruction set computer 精简指令计算机