x86-Assembler, wo wird so´was denn noch verlangt? Welcher
Assembler(Compiler) ist es denn?
Also gut, zum Programmfragment.
Neben den etwas gewagten Vergleichkonstrukten sind zwei Punkte nicht in
Ordnung.
1) Das Schleifenabbruchkriterium fehlt (wurde schon erwähnt)
2) Die Indizierung der Tabelle funktioniert so wie dargestellt nicht.
Zu 1)Die Schleife ist mit dem loop-Befehl, der cx auf NULL prüft,
abgeschlossen. Im vorliegenden Beispiel ist cx nicht initialisiert, die
Anzahl der Schleifendurchläufe ist zufällig.
Zu 2)Gemäss Aufgabenstellung adressiert bx die Tabelle bzw zeigt bei
Programmstart auf den Tabellenanfang. Die durch bx indizierten
Tabelleneinträge sollen als Worte bearbeitet, ggf modifiziert und dann
zurückgeschrieben werden. bx wird auf den nächsten Tabelleneintrag
weitergeschaltet, dieser bearbeitet usw :
.
mov ax, word ptr[bx] ;tabelleneintrag holen, typisiert
.
. ;weitere befehle
mov word ptr[bx], ax ;ax in tabelle zurückschreiben, typisiert
inc bx ;bx+=2 wg.wortbreite
inc bx ;
. ;usw.
Diese Art der Tabellenbearbeitung setzt vorraus, dass bx nicht
überlaufen kann, dh. die Tabelle muß sich am Beginn des Datensegments
befinden.
mfg