Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Computer Programming Languages >> Content
Microprocessor 8085 programmacode voor palindroom?
Hier is een mogelijk 8085-assemblageprogramma om te controleren of een bepaalde string een palindroom is:

```montage

ORG 100H

; Definieer constanten

STRLEN EQU 10

NULL_BYTE EQU 0

; Definieer geheugenlocaties

HERKOMST:equ 02H

STRING_LOCATION:gelijk aan 03H

STRING_LENGTH:gelijk aan 04H

; Definieer het registergebruik

A:gelijk aan 0; Accumulator

B:gelijk 1; Indirect geheugen

C:gelijk 2; Register meenemen

D:gelijk 3; Gegevens registreren

E:gelijk 4; Indexregister

H:gelijk 5; Hoog register van 16-bits waarde

L:gelijk 6; Laag register van 16-bits waarde

M:gelijk 7; Stapelwijzer

P:gelijk 8; Programmastatuswoord

; Definieer vlaggen

NUL:bit 0,P; Nul vlag

TEKEN:bit 1,P; Teken vlag

PARITEIT:bit 2,P; Pariteit vlag

DRAGEN:bit 4,P; Vlag dragen

; Het hoofdprogramma begint hier

VOORNAAMST:

; Initialiseer gegevens

XCHG H,L; Wissel H- en L-registers uit

MVI E,STRING_LENGTH; Stel E in op de lengte van de snaar

MOV H,E; Kopieer de lengte naar H

MVI L,NULL_BYTE; Initialiseer L met de nulbyte

SHLD-OORSPRONG; Sla de lengte op op het ORIGIN-adres

MVI E,STRLEN; Stel E in op de maximale lengte van de snaar

MOV D,STRLEN; Kopieer de maximale lengte naar D

LOOP1:

XTHL; Verwissel H- en L-registers om te laden vanaf een geheugenadres

MVI M,0; Initialiseer de geheugenlocatie met een nulbyte

INCR M; Geheugenaanwijzer verhogen

DCRE D; Verlaag de tekenreekslengte

NZ LOOP1; Ga door totdat de tekenreekslengte 0 bereikt

MVI E,STRLEN; Stel E in op de maximale lengte van de snaar

MOV D,STRLEN; Kopieer de maximale lengte naar D

READ_STRING:

IN 0,A; Lees een teken van het toetsenbord

MOV H,A; Sla het teken op in H

XTHL; Verwissel H- en L-registers om te laden vanaf een geheugenadres

MVI M,0; Initialiseer de geheugenlocatie met een nulbyte

LHLD-OORSPRONG; Laad het oorsprongsadres uit het geheugen

INCR M; Geheugenaanwijzer verhogen

MOV L,A; Sla het teken op in L

SHLD-OORSPRONG; Sla het adres van het volgende teken in het geheugen op

DCRE D; Verlaag de tekenreekslengte

NZ READ_STRING; Ga door totdat de tekenreekslengte 0 bereikt

; Functie om te controleren of een string een palindroom is

IS_PALINDROME:

; Registers opslaan

DRUK H

DRUK D

; Loop door de helft van het touw

LHLD-OORSPRONG; Laad het oorsprongsadres uit het geheugen

MOV H,L; Kopieer de lage byte van het adres naar H

HL TOEVOEGEN; Verhoog het adres

MOV L,H; Kopieer de hoge byte van het adres naar L

MOV D,L; Kopieer de hoge byte van het adres naar D

PAPA D; Verdubbel het adres

XCHG H,D; Wissel H- en D-registers om

MOV H,A; Sla het laatste teken op in H

DCRE E; Verlaag de tekenreekslengte

LOOP_PAL:

LHLD-OORSPRONG; Laad het oorsprongsadres uit het geheugen

MOV L,H; Kopieer de lage byte van het adres naar L

PAPA D; Verdubbel het adres

XTHL; Verwissel H- en L-registers om te laden vanaf een geheugenadres

CPI M; Vergelijk het teken op het huidige adres met het laatste teken

DRUK PSW; Sla de statusvlaggen op

ANI NUL; Controleer of de karakters gelijk zijn

POP PSW; Herstel de statusvlaggen

JZ NOT_PALINDROME; Indien gelijk, doorgaan

XCHG H,D; Wissel H- en D-registers om

MOV H,A; Sla het volgende teken op in H

DCRE E; Verlaag de tekenreekslengte

NZ LOOP_PAL; Ga door tot het einde van het touwtje

POP D

POP H

; Einde functie

RET

NOT_PALINDROME:

CMP E,0; Controleer of de tekenreekslengte 0 is

JZ PAL_DONE; Indien 0, is de string een palindroom

POP D

POP H

; Functie om een ​​string af te drukken

PRINT_STRING:

; Registers opslaan

DRUK D

LOOP_PRINT:

LHLD-OORSPRONG; Laad het oorsprongsadres uit het geheugen

UIT 0,A; Druk het teken af ​​op het huidige adres

XTHL; Verwissel H- en L-registers om te laden vanaf een geheugenadres

CPI NULL_BYTE; Controleer of het teken een null-byte is

POP D

RETNZ

; Functie om een ​​bericht af te drukken dat aangeeft dat de string een palindroom is

PRINT_PALINDROME:

MOV E,STR_PALINDROME; Verplaats het berichtadres naar het E-register

OPROEP PRINT_STRING; Roep de PRINT_STRING-functie aan

; Functie om een ​​bericht af te drukken dat aangeeft dat de string geen palindroom is

PRINT_NOT_PALINDROME:

MOV E,STR_NOT_PALINDROME; Verplaats het berichtadres naar het E-register

OPROEP PRINT_STRING; Roep de PRINT_STRING-functie aan

; Druk het resultaat van de palindroomcontrole af

MVI A,'$'; Druk een dollarteken af ​​om het resultaat te scheiden

UIT 0,A; Druk het dollarteken af

CMP E,0; Controleer of de string een palindroom is

JZ PRINT_PALINDROME; Indien 0, druk dan het palindroombericht af

OPROEP PRINT_NOT_PALINDROME; Druk anders het bericht 'niet palindroom' af

; Druk een nieuw regelteken af

UIT 0,CRLF

; Stop het programma

HLT

; Tekenreeksen om af te drukken

STR_PALINDROME:DB '$De string is een palindroom$'

STR_NOT_PALINDROME:DB '$De string is geen palindroom$'

CRLF:DB ODH,OAH,0; Vervoerretour en regelinvoer

; Einde programma

```

Previous: Next:
  Computer Programming Languages
·Hoe te QCP Play 
·Hoe te constanten gebruiken in…
·Hoe maak je een Polygon conver…
·Hoe de Dojo Tree Node verberge…
·Hoe de som van cijfers van een…
·Hoe maak je een Raid Controlle…
·Om te lezen hoe een Punch Card…
·Hoe te Take Out Alpha Personag…
·Scala Tekenreeksfuncties 
  Related Articles
Wat is de functie van het programmatelle…
C-programma om lineair en binair zoeken …
Wat is het programma Joke Stressreducer?…
Wie ontwerpt bij het maken van een compu…
Hoe zou je een programma schrijven dat h…
C-programma om de reeks getallen in aflo…
Waarom moet een computerprogramma zich i…
Telt het tijdens de hercategoriseringsmi…
Een assembleertaalprogramma schrijven om…
  Programmering Articles
·Hoe te Logins Beperk in Python code 
·Hoe kan ik een MySQL Server op CentOS 20…
·Hoe maak ROT - 13 in Python 
·Hoe Web User Control Close 
·Hoe kan ik een vergelijking als een Stri…
·Hoe maak je een Javascript Call Vanuit V…
·Hoe je Java- updates Elimineer 
·Hoe te XLS converteren naar CSV op VB.NE…
·ActiveX Component Tutorial 
Copyright © Computer Kennis https://www.nldit.com