stringervergleich
-
wie kann ich einen variablen string, der vorher eingegeben wurde mit einem anderen vergleichen. ein beispiel wäre auch nett
-
und du kannst dir nicht vorstellen, wie das gehen koennte?...
-
ich denke mir in etwa etwas cmp-mäßiges aber ich weiß nicht was direkt und auch nicht wie anwendbar
-
deine strings werden ja an irgend einer stelle im speicher stehen.
diese adressen laedst du in zwei register und liesst an beiden stellen jeweils ein zeichen aus.
diese beiden zeichen kannst du mit cmp vergleichen.
sind sie unterschiedlich, sind die strings nicht identisch.
sind sie gleich, schiebst du die beiden adressen jeweils eins weiter und liesst das naechste zeichenpaar aus und vergleichst die...
die cmp-instruction setzt dafuer das "equal"-flag. dadurch kannst du einen konditionalen sprung ausfuehren, zb:
cmp al,bl
je sindgleich (jump if equal), bzw
jne sindnichtgleich (jump if not equal)
-
geht das nicht einfacher,so das man gleich den vollen string vergleicht? wenn nein: wie schiebe ich denn einen string um eine stelle?
-
aktuelle cpus koennen leider nur 32 bzw 64bit gleichzeitig verarbeiten und da passen nunmal nur 4-8 zeichen rein, sodass man nicht drumrum kommt, einzelne zeichen zu vergleichen.
angenommen die zeichen haben eine groesse von einem byte (ascii), wuerde man, um auf das naechste zeichen zuzugreifen, das register in dem sich die speicher-adresse befindet, einfach mit 1 addieren.
aber warum willst du das in assembler realisieren, wenn dir jede hochsprache dafuer bereits eine fertige funktion anbietet?...