Einzelnen Beitrag anzeigen

MaOfDe

Registriert seit: 3. Jan 2004
Ort: Berlin
73 Beiträge
 
Delphi 6 Personal
 
#1

"Einsenfüller" in Assembler?

  Alt 16. Dez 2007, 19:56
Ich will eine Prozedur schreiben, die zu einen Speicherbereich mit einer bestimmten Anzahl an Einsen auffüllt. Der Speicherbereich ist gegeben durch einen Zeiger und einer Größenangabe. Ich könnte es mit and, or und not für jedes einzelne Bit machen, aber das scheint mir ein bissel ineffizient.

Der Algorithmus ist ungefähr:
- zähle alle vorhandenen Einsen
- wenn es mehr als gefordet sind, beende den Algorithmus
- sonst mache alle Nullen vom Lowbit aus zu Einsen, bis die geforderte Anzahl erreicht ist

procedure Fill(Size: Byte; X: Pointer; NmBits: Byte); Wie geht es in Assembler? Mein Problem ist, dass ich nicht in der Assembler-Materie bin ^^. Ich weiß weder wie man die Funktionparameter anspricht, noch wie man den Wert hinter dem Pointer bearbeitet. Kenne zwar einige Befehle, aber das reicht nicht aus ^^ (ADD, AND, OR,...).
  Mit Zitat antworten Zitat