AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Parität in Assembler

Ein Thema von Woyzeck · begonnen am 6. Nov 2010 · letzter Beitrag vom 7. Nov 2010
 
Woyzeck

Registriert seit: 9. Jun 2009
60 Beiträge
 
#3

AW: Parität in Assembler

  Alt 6. Nov 2010, 19:52
Also die Berechnung sollte doch eigentlich kein Problem sein

1234 mod 2 = 0 => gerade
2345 mod 2 = 1 => ungerade

... und da hast du schon deine 0/1.
Das ist nicht der Paritätsbit. Ein Paritätsbit gibt nicht an, ob eine Zahl gerade oder ungerade ist, sondern ob die Anzahl der Einsen in binärer Darstellung gerade oder ungerade ist... Aus einer 2 = 0b0010 soll also 0b00101 = 5 werden.


meine letzten Assemblerroutinen habe ich vor 16 Jahren geschrieben, aber nach dem SHL müsste IMHO in das erste BIT der Inhalt des 2. Bit eingetragen werden.
Auch das würde als Parität einfach nur angeben, ob Zahl gerade oder ungerade, was aber nicht die Definition der Parität ist.


Ich hab mittlerweile eine Lösung entwickelt, die nicht sonderlich elegant, aber funktionsfähig ist.

Code:

movl $15,%eax # wertübergabe
movl %eax,%edx # mit edx rechne ich
movl $0,%ecx # ecx speichert die anzahl der 1er

and $1,%edx # edx= letzte Stelle von eax
addl %edx,%ecx # summieren der quersumme

movl %eax,%edx

shrl %edx
and $1,%edx
addl %edx,%ecx

movl %eax,%edx

shrl $2,%edx
and $1,%edx
addl %edx,%ecx

movl %eax,%edx

shrl $3,%edx
and $1,%edx
addl %edx,%ecx

and $1,%ecx

shll %eax
or %ecx,%eax
Ich teste das jetzt nochmal schnell durch, aber eigentlich sollte das tun.

Geändert von mkinzler ( 6. Nov 2010 um 19:55 Uhr) Grund: Code-Tag eingefügt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz