# ein wohl ganz billiges Assemblerproblem



## darkdennis (30. Dezember 2004)

Hallo zusammen.
Im 3. Semester hatte ich u.a. auch Assembler, hab aber viel in Gruppenarbeit gemacht und nun möchte ich die Sprache "neu" lernen.
Folgendes kleines Problem:
ich möchte zu Test/Lernzwecken ein Programm schreiben, wo einfach 2 Variabeln oder Werte addiert werden und dann das Ergebnis auf den Screen ausgegeben wird.

daten segment
   assume ds:daten
      eins db 50
      zwei db 50
      ergebnis db ?
daten ends

code segment
   assume cs:code
      mov ax,daten
      mov ds,ax 

      mov dl,eins
      add dl,zwei
      mov ergebnis,dl
      mov ah,09h
      int 21h
ende (den Rest spar ich mir) Aber es wird nix oder ein Zeichenwirrwarr (binb mir nicht mehr sicher) ausgegeben. Was ist da falsch?
Zur Zeit nutze ich MASM unter Linux-DosEMU. Habe aber unter WinXP Hutch's MASM32. Was ist da anders? Hui, so viele Fragen, aber Danke für Eure Antworten und allen ein schönes neues Jahr.


----------



## Kyoko (31. Dezember 2004)

Warum so kompliziert?

```
.DATA
a db 50
b db 50
erg db ?
.CODE
mov ah, [a]
add ah, [b]
;So, jetzt ist schonmal addiert!
mov [erg], ah
;So, und jetzt gespeichert
;Und dann gibst du das einfach aus!
```



Übrigens, könte sein das das nciht stimmt, ich mache OS-Dev da gibts kein Data-Segment in *.bin Dateien.



Und übrigens, dein Zeichenwirrwar entsteht, weil diese Zahlen als ASCII-Code interpretiert werden! du muss das erst umwandeln!


----------



## darkdennis (31. Dezember 2004)

Schreib bitte noch die korrekte Ausgabe! Danke.


----------



## Kyoko (31. Dezember 2004)

Nein! Ein Forum ist nciht dazu da, dir code zu schreiben!
Es sieht ungefähr so us:

wenn das register mit der Zahl ah ist:

zahl_char:
cmp ah, 1
jnz .1
mov ah, "1"
.1:
cmp ah, 2
jnz .2
mov ah, "2"
usw.
dann sind die zahlen umgewandelt, jetzt mit einem int ausgeben und fertig


----------



## darkdennis (3. Januar 2005)

Da hast Du natürlich Recht. Aber jetzt weiß ich auch wieder, warum ich Assembler damals verflucht habe. Nichts desto trotz, Danke für die Hilfe.


----------

