wolfshuendchen
Grünschnabel
hallo zusammen
also ich habe folgendes problem und hoffe dass ihr mir dabei helfen könnt
ich suche vorschläge, hab aber auch nix gegen eine richtige lösung um diese zu studieren
da ist eine aufgabe, die ich in assembler lösen soll:
ein text (vorgegeben:hello world) soll ausgegeben werden, am monitor
also erst soll man eine monitorschnittstelle für die asynchrone Datenübertragung
(9600 Bd, 8 Datenbits, kein Paritätsbit) initialisieren, dann soll der text ausgegeben werden
(speicherstelle nicht vergessen)
okay, in meinem programm steht also:
start: mov s1rel,#217 ;Baudratengenerator initialisieren
mov s1con, #090h ;Schnittstelle initialisieren
mov dptr,#text15 ;dptr auf den Textanfang setzen
movx a, @dptr ;erstes Textzeichen aus dem Speicher holen
loop1: mov s1con,#00h ;Sende-Steuerbit löschen
mov s1buf,a ;Textzeichen am Sendebuffer ausgeben
send0:jnb, acc1, send0 ;warten bis Sendeteil frei ist
inc dptr ;Zeiger auf nächstes Zeichen setzen
movx a,@dptr ;nächstes Zeichen holen
jnz loop1 ;solange <>0 zu loop 1 zurück
ljmp start ;endlos warten
text15: db 0dh,0ah ;Carriage-Return + Line-Feed (neue Zeile)
db 'Hallo Welt' ;Meldung mit anschliesssendem
db 0dh,0ah,0 ;Carriage-Return + Line-Feed+ End-Code
das programm scheint die erste Zeile, oder mind. das erste Zeichen einzulesen,
geht dann aber nicht weiter.
also im terminal gibt es eine neue Zeile, mehr geschiet nicht.
ich hoffe ihr könnt mir helfen
wolf ^^
also ich habe folgendes problem und hoffe dass ihr mir dabei helfen könnt
ich suche vorschläge, hab aber auch nix gegen eine richtige lösung um diese zu studieren
da ist eine aufgabe, die ich in assembler lösen soll:
ein text (vorgegeben:hello world) soll ausgegeben werden, am monitor
also erst soll man eine monitorschnittstelle für die asynchrone Datenübertragung
(9600 Bd, 8 Datenbits, kein Paritätsbit) initialisieren, dann soll der text ausgegeben werden
(speicherstelle nicht vergessen)
okay, in meinem programm steht also:
start: mov s1rel,#217 ;Baudratengenerator initialisieren
mov s1con, #090h ;Schnittstelle initialisieren
mov dptr,#text15 ;dptr auf den Textanfang setzen
movx a, @dptr ;erstes Textzeichen aus dem Speicher holen
loop1: mov s1con,#00h ;Sende-Steuerbit löschen
mov s1buf,a ;Textzeichen am Sendebuffer ausgeben
send0:jnb, acc1, send0 ;warten bis Sendeteil frei ist
inc dptr ;Zeiger auf nächstes Zeichen setzen
movx a,@dptr ;nächstes Zeichen holen
jnz loop1 ;solange <>0 zu loop 1 zurück
ljmp start ;endlos warten
text15: db 0dh,0ah ;Carriage-Return + Line-Feed (neue Zeile)
db 'Hallo Welt' ;Meldung mit anschliesssendem
db 0dh,0ah,0 ;Carriage-Return + Line-Feed+ End-Code
das programm scheint die erste Zeile, oder mind. das erste Zeichen einzulesen,
geht dann aber nicht weiter.
also im terminal gibt es eine neue Zeile, mehr geschiet nicht.
ich hoffe ihr könnt mir helfen
wolf ^^