Embedded-MCS-51 modo de direccionamiento del sistema de instrucción de un solo chip

1. Definición del sistema de comando

  • Una instrucción es un comando que especifica una computadora para realizar una función específica
  • El programa es una serie de instrucciones.
  • MCS-51 MCU está equipado con 111 instrucciones en 5 categorías que incluyen transmisión, operaciones aritméticas, operaciones lógicas, transferencia de control y operaciones de bits
  • El usuario puede especificar los operandos a través de 7 modos de direccionamiento: direccionamiento inmediato, direccionamiento de registro, direccionamiento indirecto de registro, direccionamiento directo, direccionamiento indexado, direccionamiento relativo, direccionamiento de bits

2. Instrucciones de SCM

2.1 Formato de instrucción SCM

Etiqueta: Opcode Mnemonic Target Operand, Source Operand; Comentario

Ejemplo:
PRINCIPAL: MOVER A, # 10H; poner 10H en el acumulador

2.2 Símbolos comúnmente utilizados en un microordenador de un solo chip

Símbolo Función
A (ACC) Acumulador
si Registros especiales para instrucciones de multiplicar y dividir
C Carry flag o carry bit, o acumulador en procesador booleano
DPTR Puntero de datos, se puede usar como un registro de dirección de 16 bits
Rn (0 ~ 7) Los ocho registros de trabajo R0 ~ R7 del conjunto de registros actual están determinados por RS1 y RS0 en el PSW.
Ri (0,1) Dos registros disponibles para direccionamiento indirecto
# # Símbolo de prefijo inmediato
@ @ Símbolo de prefijo del registro de trabajo en direccionamiento indirecto
(X) Contenido en la unidad X
PS Representa la dirección de la instrucción actual.
/ / Invierte el operando de bit, pero no afecta el valor original del bit.

3. Modo de direccionamiento

3.0 Resumen primero:

3.0.1 Varios modos de direccionamiento

Modo de direccionamiento Variables utilizadas Espacio de direcciones Explicación suplementaria
Direccionamiento inmediato #datos Registro del programa Obtener directamente el operando después de la instrucción
Direccionamiento directo directo 128B menos RAM en chip y SFR Saca el contenido de la dirección directamente
Registrar direccionamiento R0 ~ R7, A, B, DPTR Registro de trabajo y SFR parcial Obtenga el contenido del registro directamente
Registrar direccionamiento indirecto @ R0, @ R1, @ DPTR RAM en chip, RAM en chip Obtenga el contenido de la dirección almacenada en el registro
Direccionamiento indexado @ A + PC, @ A + DPTR Memoria de programa Tome el contenido de la dirección después de agregar el contenido de los dos registros.
Direccionamiento relativo @ PC + offset Memoria de programa Tome el contenido correspondiente a la dirección después del desplazamiento de la PC
Direccionamiento de bits poco Direccionamiento de bits en chip y SFR parcial Toma un poco de contenido

3.0.2 Espacio de almacenamiento y modo de direccionamiento correspondiente

Espacio de almacenamiento de microordenador de un solo chip

Espacio de almacenamiento Modo de direccionamiento
Registro de trabajo interno 00H-1FH Registrarse, directo, indirecto
Espacio interno de bits 20H-2FH Bit, directo, indirecto
RAM interna de usuario 30H-7FH Indirecta
RAM interna de usuario 80H-FFH Indirecta
Registro interno de la función charter 80H-FFH SFT Directo, para (parte de)
RAM externa Indirecta
Memoria externa del programa ROM Indizado, relativo

3.1 Direccionamiento inmediato

  1. Definición: el operando sigue inmediatamente al código de operación, se incluye en el byte de instrucción y se almacena en la memoria del programa con el código de operación
  2. Ejemplo:
    MOV A, # 52H; 52H-> A
    Inserte la descripción de la imagen aquí

3.2 Direccionamiento directo

  1. Definición: la dirección de la memoria se proporciona directamente en la instrucción, el operando está en la memoria
  2. Ejemplo: MOV A, 52H; (52h) -> A
    Inserte la descripción de la imagen aquí

3.3 Direccionamiento de registro

  1. Definición: especifique el nombre del registro, el contenido del registro es el operando
  2. Ejemplo:
    MOV A, R0; ((R0)) -> A
  3. Ámbito de aplicación:
    I. Hay 32 grupos de R0-R7 en total, y solo 8 del grupo de registro actual se pueden usar a la vez
    . Ii. Registros parciales de funciones especiales A, B, DPTR, etc.

3.4 Registro de direccionamiento indirecto

Regulaciones

  1. 128 bits bajos y 128 bits altos de RAM básica en chip, indirectamente usando @ R0, @ R1
  2. RAM sin chip (64kb): use @DPTR
  3. RAM de expansión fuera del chip: si es inferior a 256B, use DPTR o @ R0, @ R1 indirectamente, si es superior a 256B, use @DPTR

例子 :
MOV DPTR, # 3456H; 3456H->
DPTR MOVX A, @ DPTR; ((DPTR)) -> A

3.5 Direccionamiento indexado

  1. Definición: dirección base (DPTR y PC almacenan la dirección base correspondiente al operando por adelantado) + desplazamiento (el acumulador A almacena el desplazamiento correspondiente por adelantado) como la dirección efectiva del operando
  2. Ejemplo:
    MOV A, # 22H;
    MOV offset DPTR, # 63A0H; dirección base
    MOV A, @ A + DPTR; ((A) + (DPTR)) -> A
    Inserte la descripción de la imagen aquí

3.6 Direccionamiento relativo

  1. Definición: El direccionamiento relativo toma el valor actual de la PC del contador del programa como la dirección base, lo agrega al rel de desplazamiento relativo dado en la instrucción y usa la suma como la dirección de bifurcación del programa.

    Dirección de destino = valor actual de PC + rel = dirección de almacenamiento de instrucciones + número de byte de instrucciones + rel

    Asuntos que requieren atención:
    I. El valor actual de la PC se refiere a la dirección de almacenamiento de la instrucción de bifurcación relativa más el número de bytes de la instrucción, es decir, el valor al final de la búsqueda de la instrucción de bifurcación relativa.
    El desplazamiento rel es un número de byte único con signo, expresado como complemento, y su rango de valores es -128 ~ +127 (00H ~ FFH). Los números negativos indican un cambio de la dirección actual a una dirección más pequeña, y los números positivos indican un cambio de la dirección actual a una dirección más grande.

  2. Ejemplo:
    SJMP 08H; PC + 2 + 08H-> PC
    Inserte la descripción de la imagen aquí
    ps:
    a. Por qué +2, porque SJMP (ocupa un byte), entonces se toma 08H (también un byte)
    b. El último 200AH se pone en PC

Direccionamiento de 3.7 bits

  1. Suplemento:
    bit (bit, un código binario), byte (byte, código binario de 8 bits), palabra (palabra, en circunstancias normales, dos bytes por palabra, 16 bits)
  2. El direccionamiento de bits puede entenderse como la eliminación del valor de un cierto bit, la forma específica tiene los siguientes cuatro
Forma Ejemplos Descripción
Usar dirección de bit directamente MOV C, 0D5H El estado del bit 5 (dirección de bit D5H) de la PSW se envía al indicador de bit.
Dirección de la unidad más número de bit MOV C, 0D0H.5 El estado del bit 5 (dirección de bit D5H) de PSW (dirección de unidad 0D0H) se envía al bit de indicador de bit.
Registro de funciones especiales más número de serie MOV C, PSW.5 ; Envíe el estado del bit 5 de PSW al indicador de bit.
Representación de nombre de bit MOV C, F0 ; Envíe el estado del bit 5 de PSW (dirección de bit D5H, nombre de bit F0) al indicador de bit.
Publicado 21 artículos originales · elogiado 43 · 10,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/weixin_43746266/article/details/105009918
Recomendado
Clasificación