Hi Leute,
ich verzweifle noch...weiß jemand wie man im 8086 Code einzelne Bits vertauschen kann?
Die Aufgabe ist folgende:
"Erstellen Sie ein Programm, welches eine 8-Bit-Folge (Byte), die im Datenbereich unter der Adresse "Original" abgelegt ist in umgekehter Reihenfolge (d.h. Bit 7 mit Bit 0, Bit 6 mit Bit1 usw vertauscht) wieder unter der Adresse "REVERSE" im Datenbereich ablegt."
Hab schon den swap befehl probiert doch bekomm die meldung das tasm den befehl nicht kennt, auch mit push und pop hab ich mir überlegt aber das problem ist das da nur bytes auf den stack können! wie kann ich einzelne bits vertauschen,,,alle überlegungen mit xor, ROR usw haben bisher nicht geklappt.
Wäre dankbar für jede Hilfe!
Gruß
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Danke euch!
Habs jetzt geschafft mein schlüsselbefehl der mir zum Glück verholfen hatte war RCL nun hauts hin schauts euch an. Aber vorher noch weiß jemand vielleicht du Andreas oder mr.escape wie man eine Eingabe der 8Bit machen könnte, weil momentan hab ich ja einen festen wert immer. Und noch was beim Aufgabenblatt stand "8 Bit Folge im Datenbereich unter der Adresse original"
ich habs mit original db xxxxxxxx gemacht ist das jetzt die adresse oder nur ne variable?
Start:
mov dh,ORIGINAL ; Original in dh schreiben
Schleife: SHR dh,1 ; bitweise rechtsschiebung um 1
RCL dl,1 ; CF ins LSB reinschieben,
INC cl ; cl um 1 erh”hen
CMP cl,8 ; vergleich ob cl und 8 gleich
JL Schleife ; Sprung solang cl kleiner 8
mov REVERSE,dl ; vertauschter wert in Reverse schreiben
; Programmende
mov al,0 ; Fehlercode 0
mov ah,4Ch ; Funktion: Programm verlassen
int 21h ; Schnittstelle zu DOS
;********************************************************************
;Datenbereich
ORIGINAL db 10011001b
REVERSE db 0