Mode d'adressage du système d'instruction à puce unique MCS-51 intégré

1. Définition du système de commande

  • Une instruction est une commande qui spécifie un ordinateur pour exécuter une fonction spécifique
  • Le programme est une série d'instructions
  • Le MCS-51 MCU est équipé de 111 instructions dans 5 catégories, y compris la transmission, les opérations arithmétiques, les opérations logiques, le transfert de contrôle et les opérations sur les bits
  • L'utilisateur peut spécifier les opérandes à travers 7 modes d'adressage: adressage immédiat, adressage de registre, adressage indirect de registre, adressage direct, adressage indexé, adressage relatif, adressage de bits, etc.

2. Instructions SCM

2.1 Format d'instruction SCM

Étiquette: Opcode Mnémonique Opérande cible, Opérande source; Commentaire

Exemple:
PRINCIPAL: DÉPLACER A, # 10H; mettre 10H dans l'accumulateur

2.2 Symboles couramment utilisés dans les micro-ordinateurs monopuce

Symbole Fonction
A (ACC) Accumulateur
B Registres spéciaux pour multiplier et diviser les instructions
C Indicateur de transport ou bit de transport ou accumulateur dans le processeur booléen
DPTR Pointeur de données, peut être utilisé comme registre d'adresse 16 bits
Rn (0 ~ 7) Les huit registres de travail R0 ~ R7 de l'ensemble de registres actuel sont déterminés par RS1 et RS0 dans le PSW.
Ri (0,1) Deux registres disponibles pour l'adressage indirect
# Symbole de préfixe immédiat
@ Symbole de préfixe du registre de travail dans l'adressage indirect
(X) Contenu dans l'unité X
$ Représente l'adresse de l'instruction en cours
/ Inverse l'opérande de bit, mais n'affecte pas la valeur d'origine du bit

3. Mode d'adressage

3.0 Résumé en premier:

3.0.1 Différents modes d'adressage

Mode d'adressage Variables utilisées Espace d'adressage Explication supplémentaire
Adressage immédiat #Les données Registre du programme Récupérer directement l'opérande après l'instruction
Adressage direct direct Mémoire RAM et SFR sur puce 128B inférieure Retirer directement le contenu de l'adresse
Inscription adressage R0 ~ R7, A, B, DPTR Registre de travail et SFR partiel Obtenez le contenu du registre directement
Enregistrer l'adressage indirect @ R0, @ R1, @ DPTR RAM sur puce, RAM hors puce Obtenez le contenu de l'adresse stockée dans le registre
Adressage indexé @ A + PC, @ A + DPTR Mémoire programme Prendre le contenu de l'adresse après avoir ajouté le contenu des deux registres
Adressage relatif @ PC + offset Mémoire programme Prenez le contenu correspondant à l'adresse après le décalage PC
Adressage de bits bit Adressage de bits sur puce et SFR partiel Prenez un peu de contenu

3.0.2 Espace de stockage et mode d'adressage correspondant

Espace de stockage d'un micro-ordinateur monopuce

Espace de stockage Mode d'adressage
Registre de travail interne 00H-1FH Registre, direct, indirect
Espace de bits interne 20H-2FH Bit, direct, indirect
RAM utilisateur interne 30H-7FH Indirecte
RAM utilisateur 80H-FFH interne Indirecte
Registre interne des fonctions d'affrètement 80H-FFH SFT Direct, pour (une partie de)
RAM externe Indirecte
Mémoire de programme ROM externe Indexé, relatif

3.1 Adressage immédiat

  1. Définition: l'opérande suit immédiatement l'opcode, est inclus dans l'octet d'instruction et est stocké dans la mémoire du programme avec l'opcode
  2. Exemple:
    MOV A, # 52H; 52H-> A
    Insérez la description de l'image ici

3.2 Adressage direct

  1. Définition: L'adresse de la mémoire est donnée directement dans l'instruction, l'opérande est dans la mémoire
  2. Exemple: MOV A, 52H; (52h) -> A
    Insérez la description de l'image ici

3.3 Adressage des registres

  1. Définition: spécifiez le nom du registre, le contenu du registre est l'opérande
  2. Exemple:
    MOV A, R0; ((R0)) -> A
  3. Champ d'application:
    i. Il y a 32 groupes de R0-R7 au total, et seulement 8 du groupe de registres actuel peuvent être utilisés à la fois
    . Ii. Registres partiels de fonctions spéciales A, B, DPTR, etc.

3.4 Enregistrer l'adressage indirect

Règlements:

  1. 128 bits bas et 128 bits de RAM de base sur puce, utilisant indirectement @ R0, @ R1
  2. RAM hors puce (64 Ko): utilisez @DPTR
  3. RAM d'extension hors puce: si elle est inférieure à 256B, utilisez DPTR ou @ R0, @ R1 indirectement, si elle est supérieure à 256B, utilisez @DPTR

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

3.5 Adressage indexé

  1. Définition: adresse de base (DPTR et PC préenregistrent l'adresse de base correspondant à l'opérande) + offset (l'accumulateur A préenregistre l'offset correspondant) comme adresse effective de l'opérande
  2. Exemple:
    MOV A, # 22H; décalage
    MOV DPTR, # 63A0H; adresse de base
    MOV A, @ A + DPTR; ((A) + (DPTR)) -> A
    Insérez la description de l'image ici

3.6 Adressage relatif

  1. Définition: L'adressage relatif prend la valeur actuelle du compteur de programme PC comme adresse de base, l'ajoute au décalage relatif rel donné dans l'instruction et utilise la somme comme adresse de branchement du programme.

    Adresse cible = valeur actuelle du PC + rel = adresse de stockage des instructions + numéro d'octet d'instruction + rel

    Questions nécessitant une attention:
    I. La valeur PC actuelle fait référence à l'adresse de stockage de l'instruction de transfert relative plus le nombre d'octets de l'instruction, c'est-à-dire la valeur à la fin de la récupération de l'instruction de transfert relative.
    ii. L'offset rel est un nombre signé sur un octet, exprimé en complément, et sa plage de valeurs est -128 ~ +127 (00H ~ FFH). Les nombres négatifs indiquent un décalage de l'adresse actuelle vers une adresse plus petite, et les nombres positifs indiquent un décalage de l'adresse actuelle vers une adresse plus grande.

  2. Exemple:
    SJMP 08H; PC + 2 + 08H-> PC
    Insérez la description de l'image ici
    ps:
    a. Pourquoi +2, car SJMP (occupe un octet), alors 08H est pris (également un octet)
    b. Le dernier 200AH est placé dans PC

Adressage de 3,7 bits

  1. Supplément:
    bit (bit, un code binaire), octet (octet, code binaire 8 bits), mot (mot, dans des circonstances normales, deux octets par mot, 16 bits)
  2. L'adressage des bits peut être compris comme la suppression de la valeur d'un certain bit, le formulaire spécifique a les quatre suivants
Formulaire Des exemples La description
Utiliser directement l'adresse de bit MOV C, 0D5H L'état du bit 5 (adresse de bit D5H) du PSW est envoyé à l'indicateur de bit.
Adresse de l'unité plus numéro de bit MOV C, 0D0H.5 L'état du bit 5 (adresse de bit D5H) de PSW (adresse d'unité 0D0H) est envoyé au bit de drapeau de bit.
Registre des fonctions spéciales et numéro de série MOV C, PSW.5 ; Envoyer l'état du bit 5 de PSW dans l'indicateur de bit.
Représentation des noms de bits MOV C, F0 ; Envoyer l'état du bit 5 de PSW (adresse de bit D5H, nom de bit F0) dans le drapeau de bit.
21 articles originaux publiés · 43 éloges · 10 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43746266/article/details/105009918
conseillé
Classement