Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

Assembler Problem

Firefucker / 7 Antworten / Flachansicht Nickles

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ß

bei Antwort benachrichtigen
Andreas42 Firefucker „Assembler Problem“
Optionen

Hi!

Beim bitweisen Schieben werden die Bits in eine Richtung rolliert (entspricht einer Multiplikation * 2 oder Division / 2). Das Bit das rausfällt wandern meistens ins Carry-Flag. Dazu passend gibt's bei vielen CPUs dann Roll befehle, die das Carryflag wieder ins Byte rollen.

Muss mal kurz für 8086 nachschlagen, damit ich nicht doch C64 ASM-Code raushaue. ;-)

Die Bfehle lauten RCL und RCR (Rotate with Carry Left und Rotate with carry Right). Es gibt noch haufenweise andere Varianten SAR, SAL, SHR, SHL, ROR, ROL. Am besten du schaust selbst mal kurz in eine Referenz rein.

Wie's realisiert wird ist klar, oder? Z.B. Rechts rausscheiben und links wieder rein.

Bis dann
Andreaas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Antwort Andreas42
Antwort Firefucker
Antwort Andreas42
Antwort Firefucker