Hallo Leute,
ich hoffe einer von euch kann mir helfen ich habe in der Techniker-Schule ein programm geschrieben in Assembler Sprache. Da wir da erst am Anfang sind fangen wir ganz klein an...
Das Programm liest einen Namen ein und gibt ihn nachher wieder aus ( auch bekannt " Hello World" ) aber irgendwie macht es das nicht. Einlesen ist ja noch in Ordnung nur bei der ausgabe gibt er den ersten Buchstaben nicht aus vom Namen. Es ist ein Offset Problem. Aber ich komm nicht drauf. Hier der Quellcode:
.model tiny
.stack 100h
.data
text_1 db "Bitte geben sie ihren Namen ein: ",0
text_5 db 20 dup (0)
text_3 db "Guten Tag, ",0
.code
anf:
mov ax,@data
mov ds,ax
clrscr:
mov ax,6*256
mov bh,0fh
mov cx,0
mov dx,184fh
int 10h
mov dx,0
mov ah,2
xor bh,bh
int 10h
mov si,offset text_1
l1:
mov dl,[si]
cmp dl,0
jz l2
mov ah,2
int 21h
inc si
jmp l1
mov si,offset text_5
l2: mov ah,1
int 21h
cmp al,0dh
jz l3
mov [si],al
inc si
jmp l2
l3: mov si,offset text_3
mov ah,2
mov dl,0ah
int 21h
mov dl,0dh
int 21h
clrscr2:
mov ax,6*256
mov bh,0eh
mov cx,0
mov dx,184fh
int 10h
mov dx,0
mov ah,2
xor bh,bh
int 10h
l4:
mov dl,[si]
cmp dl,0
jz l5
mov ah,2
int 21h
inc si
jmp l4
l5: mov si,offset text_5
l6: mov dl,[si]
cmp dl,0
jz dos
mov ah,2
int 21h
inc si
jmp l6
dos:
mov ah,04ch
int 21h
end anf
Vielleicht entdeckt einer von euch den Fehler wäre echt super da ich nicht mehr weiter weiß.....
Gruß
TheWebWasher