Connaissances Informatiques >> programmation >> Computer Programming Languages >> Content
  Derniers articles
  • Comment désactiver un gestionnaire …
  • Taille & MaxLength propriétés d'un…
  • Comment écrire un programme simple …
  • La Division d'identification en COBO…
  • Comment déplacer un sous-répertoir…
  • Comment faire pour installer Turbo P…
  • Types de données COBOL 
  • Comment faire pour remplir un ListVi…
  • Comment désinstaller la prévention…
  • Comment remplacer Div texte avec CSS…
  •   Computer Programming Languages
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Computer Programming Languages

    Code de programme du microprocesseur 8085 pour le palindrome ?

    Voici un programme assembleur 8085 possible pour vérifier si une chaîne donnée est un palindrome :

    ```assemblage

    BIO 100H

    ; Définir des constantes

    STRLEN ÉQU 10

    NULL_BYTE ÉQU 0

    ; Définir les emplacements mémoire

    ORIGINE :équi 02H

    STRING_LOCATION :équivalence 03H

    STRING_LENGTH :équivalent à 04 H

    ; Définir l'utilisation du registre

    A :équivalence 0 ; Accumulateur

    B :équation 1; Mémoire indirecte

    C :équation 2; Registre de transport

    D :équation 3; Registre de données

    E :équation 4; Registre d'indexation

    H :équation 5; Registre haut de valeur 16 bits

    L :équation 6; Registre bas de valeur 16 bits

    M :équation 7; Pointeur de pile

    P :équation 8; Mot d'état du programme

    ; Définir des drapeaux

    ZÉRO :bit 0,P; Drapeau zéro

    SIGNE :bit 1,P; Signer le drapeau

    PARITÉ :bit 2,P; Drapeau de parité

    CARRY :bit 4,P; Porter le drapeau

    ; Le programme principal commence ici

    PRINCIPAL:

    ; Initialiser les données

    XCHGH,L; Échanger les registres H et L

    MVI E,STRING_LENGTH; Réglez E sur la longueur de la chaîne

    MOUVEMENT H,E ; Copiez la longueur dans H

    MVI L,NULL_BYTE; Initialisez L avec l'octet nul

    ORIGINE SHLD; Stocker la longueur à l'adresse ORIGINE

    MVI E, STRLEN; Réglez E sur la longueur maximale de la chaîne

    MOUVEMENT D, STRLEN; Copiez la longueur maximale dans D

    BOUCLE1 :

    XTHL; Échangez les registres H et L pour charger à partir d'une adresse mémoire

    MVI M,0; Initialiser l'emplacement mémoire avec un octet nul

    INCRM ; Incrémenter le pointeur de mémoire

    DCRE D; Décrémenter la longueur de la chaîne

    BOUCLE NZ1 ; Continuez jusqu'à ce que la longueur de la chaîne atteigne 0

    MVI E, STRLEN; Réglez E sur la longueur maximale de la chaîne

    MOUVEMENT D, STRLEN; Copiez la longueur maximale dans D

    READ_STRING :

    EN 0,UNE; Lire un caractère au clavier

    MOUVEMENT H,A ; Stocker le personnage en H

    XTHL; Échangez les registres H et L pour charger à partir d'une adresse mémoire

    MVI M,0; Initialiser l'emplacement mémoire avec un octet nul

    ORIGINE LHLD; Charger l'adresse d'origine depuis la mémoire

    INCRM ; Incrémenter le pointeur de mémoire

    MOUVEMENT L,A ; Stocker le personnage dans L

    ORIGINE SHLD; Stocker l'adresse du caractère suivant en mémoire

    DCRE D; Décrémenter la longueur de la chaîne

    Nouvelle-Zélande READ_STRING ; Continuez jusqu'à ce que la longueur de la chaîne atteigne 0

    ; Fonction pour vérifier si une chaîne est un palindrome

    IS_PALINDROME :

    ; Enregistrer les registres

    POUSSEZ H

    APPUYEZ SUR D

    ; Bouclez sur la moitié de la corde

    ORIGINE LHLD; Charger l'adresse d'origine depuis la mémoire

    MOUVEMENT H,L ; Copiez l'octet faible de l'adresse dans H

    AJOUTER HL ; Incrémenter l'adresse

    MOUVEMENT L,H ; Copiez l'octet de poids fort de l'adresse dans L

    MOUVEMENT D,L ; Copiez l'octet de poids fort de l'adresse dans D

    PAPA D; Doublez l'adresse

    XCHG H,D; Échanger les registres H et D

    MOUVEMENT H,A ; Stocker le dernier caractère de H

    DCRE E; Décrémenter la longueur de la chaîne

    LOOP_PAL :

    ORIGINE LHLD; Charger l'adresse d'origine depuis la mémoire

    MOUVEMENT L,H ; Copiez l'octet de poids faible de l'adresse dans L

    PAPA D; Doublez l'adresse

    XTHL; Échangez les registres H et L pour charger à partir d'une adresse mémoire

    IPC M ; Comparez le caractère à l'adresse actuelle avec le dernier caractère

    POUSSER PSW ; Enregistrez les indicateurs d'état

    ANI ZÉRO ; Vérifiez si les caractères sont égaux

    POP PSW ; Restaurer les indicateurs d'état

    JZ NOT_PALINDROME; Si égal, continuez

    XCHG H,D; Échanger les registres H et D

    MOUVEMENT H,A ; Stocker le caractère suivant dans H

    DCRE E; Décrémenter la longueur de la chaîne

    NZ LOOP_PAL; Continuer jusqu'à la fin de la chaîne

    POP D

    POP H

    ; Fin de fonction

    RET

    NOT_PALINDROME :

    CMP E,0; Vérifiez si la longueur de la chaîne est 0

    JZ PAL_DONE; Si 0, la chaîne est un palindrome

    POP D

    POP H

    ; Fonction pour imprimer une chaîne

    PRINT_STRING :

    ; Enregistrer les registres

    APPUYEZ SUR D

    BOUCLE_PRINT :

    ORIGINE LHLD; Charger l'adresse d'origine depuis la mémoire

    SORTIE 0,A ; Imprimer le caractère à l'adresse actuelle

    XTHL; Échangez les registres H et L pour charger à partir d'une adresse mémoire

    IPC NULL_BYTE ; Vérifiez si le caractère est un octet nul

    POP D

    RETNZ

    ; Fonction pour imprimer un message indiquant que la chaîne est un palindrome

    PRINT_PALINDROME :

    MOUVEMENT E,STR_PALINDROME; Déplacer l'adresse du message vers le registre E

    APPEL PRINT_STRING ; Appelez la fonction PRINT_STRING

    ; Fonction pour imprimer un message indiquant que la chaîne n'est pas un palindrome

    PRINT_NOT_PALINDROME :

    MOUVEMENT E,STR_NOT_PALINDROME; Déplacer l'adresse du message vers le registre E

    APPEL PRINT_STRING ; Appelez la fonction PRINT_STRING

    ; Imprimer le résultat du contrôle palindrome

    MVI A,'$'; Imprimez un signe dollar pour séparer le résultat

    SORTIE 0,A ; Imprimez le signe dollar

    CMP E,0; Vérifiez si la chaîne est un palindrome

    JZ PRINT_PALINDROME; Si 0, imprime le message palindrome

    APPELER PRINT_NOT_PALINDROME ; Sinon, imprimez le message non palindrome

    ; Imprimer un nouveau caractère de ligne

    SORTIE 0,CRLF

    ; Arrêter le programme

    HLT

    ; Chaînes à imprimer

    STR_PALINDROME :DB '$La chaîne est un palindrome$'

    STR_NOT_PALINDROME :DB '$La chaîne n'est pas un palindrome$'

    CRLF :DB ODH,OAH,0 ; Retour chariot et saut de ligne

    ; Fin du programme

    ```

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment lier à un type d'objet avec WPF 
  • Quels types de maths de programmation informatique utilisation 
  • Comment convertir un JDW à un Eclipse 
  • La Division d'identification en COBOL 
  • Comment remplacer le point rectangles nuls dans WPF 
  • Algorithmes de base dans les structures de données 
  • Comment Algorithmes sur les graphes 
  • Comment arrêter IMVU 
  • Connexion Tutorial Pool 
  • Comment faire pour convertir un texte au PDU 
  • Connaissances Informatiques © http://www.ordinateur.cc