Autor Thema: String im Protected Mode ausgeben ???  (Gelesen 5658 mal)

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« am: 24. June 2004, 18:56 »
Hallo zusammen !!
Ich beschäftige mich noch nicht sehr lange mit Lowlevel-coding. Jetzt habe ich mithilfe des PM Tuts in den PM geschaltet. Meine Frage lautetn nun:
Wie gibt man einen mit ASM Text im Protected Mode aus ?
Am besten wäre ein Beispiel ;)

Kennt jemand Deutsche Seiten zum thema Geräte(Tastatur usw..) in ASM ansteuern ?

Vielen  Dank

Greez Togi

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 24. June 2004, 19:28 »
Schau mal OffTopic, da is irgendwo (vermutlich auf seite 2 oder 3) ne Linkliste
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #2 am: 24. June 2004, 20:20 »
ich find den Link nicht . :?
Welchen meinst du

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #4 am: 24. June 2004, 20:46 »
und in ASM

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 24. June 2004, 20:56 »
Ähm einfach die Buchstaben mit mov in den Videospeicher befördern. Also Zum Beispiel:
mov 0xb8000, 'P'
mov 0xb8000, 0x07
sollte nach meinen (Anfänger-)Kenntnissen ein graues P auf schwarzem Grundausgeben. Zeilenumbrüche machst du glaube ich mit 0x0A
mit dieser Methode kannst du natürlich auch strings nicht nur einzelne Chars ausgeben....

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #6 am: 24. June 2004, 21:06 »
Zeilenumbrüche werden einfach durch berechnungen gemacht
der Speicher ist ja linear
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

Franz1299

  • Beiträge: 37
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 24. June 2004, 22:17 »
Du meinst wohl:
mov 0xb8000, 'P'
mov 0xb8001, 0x07

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #8 am: 25. June 2004, 07:45 »
Danke das hat viel geholfen !!  

Ich habe in der newsgroup alt.os.development noch herausgefunden wie man die Adresse Berechnet: address=(0xb8000+((y*80)+x)*2)


Gruss Togi


PS: Nocheinmal vielen dank

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 25. June 2004, 12:01 »
@Franz1299 Sorry, das habe ich übersehen, war schon leicht übermüdet :)

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« Antwort #10 am: 02. July 2004, 15:44 »
muss ich da nicht noch einen deskriptor machen ?

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #11 am: 02. July 2004, 16:51 »
Du brauchst lediglich einen Datendeskriptor der über die kompletten 4 GB geht.
Ansonsten kannst du dir auch einen extra Deskriptor für den Video-Bereich machen.

Dann musst du aber aufpassen, da sich dann wohl auch das Offset des Videospeichers ändert.
----------------------
Redakteur bei LowLevel

lobmann

  • Beiträge: 243
    • Profil anzeigen
    • http://www.fallek.de.vu
Gespeichert
« Antwort #12 am: 02. July 2004, 17:03 »
Apropros gibts beim 4GB Deskriptor nich die Gefahr das man versehentlich Daten in den Videospeicher schreibt die dort nich hin gehören
Man kann doch nem alten Mann nicht in den Bart spucken und sagen es hat geschneit

chr15

  • Beiträge: 279
    • Profil anzeigen
    • http://www.clinux.de.vu
Gespeichert
« Antwort #13 am: 02. July 2004, 20:51 »
Ja, das kann vorkommen, da du ja jede Speicheradresse benutzen kanst. So hast du z.B. bei falsche Pointerarithmetik eventuell einen Pointer der darauf zeigt und in den dann geschrieben wird. Schlimmer wäre es allerdings wenn du deinen Kernel überschreibs :)

 

Einloggen