Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Probleme im Programmieren in Assembler

TheWebWasher / 5 Antworten / Flachansicht Nickles

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

bei Antwort benachrichtigen
TheWebWasher mr.escape „Also es scheint der offset text_5 nicht richtig in si anzukommen sondern ein...“
Optionen

Hi mr.escape,

vielen vielen dank für deine hilfe du hast mir echt geholfen. Kannst du mir vielleicht auch sagen warum der den Offset von Text_5 nicht gemacht hat oder war das reiner zufall..... das das mit der l2a Sprungmarke funktioniert..

Gruß TheWebWasher

bei Antwort benachrichtigen