PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mal wieder ASSEMBLER


Capt'N Coax
2003-09-18, 15:24:30
oi!

Hab mal wieder Probs mittem 6502 Assembler...
Sollte für euch Pros aber kein Problem sein.

1.
Mal angenommen ich hab eine Liste mit ner Länge zwischen 1 und 256 in der Bytes stehen, wie kann ich bestimmte Bytes löschen und die Liste komprimieren? Gibt es da ne elegante Lösung? Ich hab zwar eine, die geht aber jedes Byte durch, vergleicht auf Gewicht=4, wenn ja nimm den nächsten Eintrag und überschreib den aktuellen, den nächsten, aktuell usw., Die Liste rückt also nach oben sozusagen, bin damit allerdings nicht wirklich zufrieden. Ach ja, Per absolut indizierter Adressierung bitte, also per Index ;)

2. Was zum Teufel ist ein "HFELD"? Google googelt nüx.

Naja, bin mal gespannt...

zeckensack
2003-09-19, 02:56:17
Wenn die Liste nicht sortiert ist und bleiben muß, dann kannst du einfach das letzte Element in die 'Lücke' kopieren.

Also mal in C ausgedrückt

int array_size; //bitte initialisieren
unsigned char* array; //dito

void
remove_entry(int offset)
{
//sanity check
if (array_size==0) return;
--array_size;
array[offset]=array[array_size];
}

Capt'N Coax
2003-09-19, 11:08:46
Stimmt allerdings. :balla:

Sollen alle Bytes gekickt werden die Gewicht=4 haben. Ansonsten ist alles egal. Werd das mal so machen, THX!