Assemblerproblem

Gast #1132857
Lesenswert?
• ▲
▼
Hi,

hab mal eine kleine Aufgabe angehängt, hier ist mein Lösungsansatz.

mov AX,BX
CMP [BX],1000H
Schleife:
JNAE Ende
CMP [BX], 5000H
JNAE Kleiner
SUB [BX], 02A5H
JMP Ende
Kleiner:
ADD [BX], 0CB3H
Ende:
MOV BX, BX+2
mov BX, AX
loop Schleife
RET

Passt das soweit?
Danke schonmal für eure Antworten =)
Angehängte Dateien:
#1133120
Lesenswert?
• ▲
▼
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.