Autor Thema: Meldungen ausgeben  (Gelesen 6142 mal)

T0ast3r

  • Gast
Gespeichert
« am: 21. April 2005, 18:12 »
Hi!
Kennt jemand ne Funktion im Interrupt 10h, mit der ich einen Text ausgeben kann??
Oder bzw. einen Buchstaben??
Ich brauche eben ein BIOS Interrupt um eine Meldung auszugeben.
Muss ich dann eigentlich auch hochscrollen??
Kann mir jemand einen (kommentierten) Code geben???

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 21. April 2005, 19:01 »
afaik gibt es dafür keine int 0x10 funktion.

dafür aber 1000 selbst zusammengeschusterte funktionen, die alle in etwa so aussehen:

; input: ds:si -> null terminierter string
print_str:
lodsb                               ; nächstes zeichen nach al laden
or al, al                           ; ist al = 0?
jz short print_str_done             ; ja => jmp print_str_done
mov ah, 0x0E                      
int 0x10                            ; int 10h, function 0Eh - Teletype Output (zeichen in al ausgeben)
jmp short print_str                 ; noch ein zeichen lesen
print_str_done:
ret

scrollt automatisch
Dieser Text wird unter jedem Beitrag angezeigt.

crashmakerMX

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 22. April 2005, 10:20 »
Zitat von: PorkChicken
afaik gibt es dafür keine int 0x10 funktion.

dafür aber 1000 selbst zusammengeschusterte funktionen, die alle in etwa so aussehen:

; input: ds:si -> null terminierter string
print_str:
lodsb                               ; nächstes zeichen nach al laden
or al, al                           ; ist al = 0?
jz short print_str_done             ; ja => jmp print_str_done
mov ah, 0x0E                      
int 0x10                            ; int 10h, function 0Eh - Teletype Output (zeichen in al ausgeben)
jmp short print_str                 ; noch ein zeichen lesen
print_str_done:
ret

scrollt automatisch


wenn es keine int 10h funktion dafür gibt, welche int 10h funktion benutzt dein code dann?  :wink:

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« Antwort #3 am: 22. April 2005, 11:30 »
er meint damit das es keine funktion gibt mit dem man ganze strings ausgeben kann... o.O

crashmakerMX

  • Beiträge: 8
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 22. April 2005, 16:20 »
Zitat von: zacK
er meint damit das es keine funktion gibt mit dem man ganze strings ausgeben kann... o.O


schon klar. aber die frage war AUCH nach einer funktion für einzelne zeichen  :lol:

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 22. April 2005, 16:22 »
rtfm wie's so schön heißt :) Steht nämlich im Lowlevel Magazin #1 :)

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 22. April 2005, 19:32 »
1 Zeichen:

; input: al ->Zeichencode
print_char:
    mov ah, 0x0E             ; Funktionsnummer
    mov bx, 0x0007          ; Bildschirmseite 0 und Farbe (fehlt IMHO auch im Code oben)
    int 0x10                     ; BIOS-Interrupt
ret

Müsste so gehen.

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 23. April 2005, 16:38 »
13, 10 = \n und \r

 

Einloggen