AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

e/a-programmierung

Ein Thema von sancho1980 · begonnen am 31. Okt 2006 · letzter Beitrag vom 3. Nov 2006
Antwort Antwort
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#1

e/a-programmierung

  Alt 31. Okt 2006, 18:46
hi

ich beschäftige mich seit einer weile mit assembly weil ich (versuche) zu lernen, wie man so dinge wie hardware- und bestriebssystemprogrammierung gemacht werden

und jetz mal eine frage zu e/a-programmierung in assembly: da wird immer von adressierung über ports und/oder memory-mapping geredet..aber wie finde ich denn beispielsweise raus, welche hardware an meinem (oder irgendeinem anderen) computer liegt? ist das irgendetwas fest vorgegebenes oder kann ich das selbst irgendwie zuweisen? wenn ja, wie macht man sowas?

und wie wird memory mapping implementiert..also wie kann ich beispielsweise einem port einer speicherregion zuweisen?

hat das einer von euch schon mal gemacht?

danke,

martin
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#2

Re: e/a-programmierung

  Alt 31. Okt 2006, 19:10
Memory Mapping macht im Prinzip nichts anderes als Speicherbereiche im Hauptspeicher abbilden. Wenn du zum Beispiel auf den Bildspeicher deiner Grafikkarte zugreifen willst kannst du diesen über Hauptspeicher-Adressen erreichen. Die Speicheradressen selbst für die VGA-Karte etc sind natürlich vorgegeben, da der Programmierer ja wissen muß wie er die Geräte programmieren muß.
Stefan
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: e/a-programmierung

  Alt 31. Okt 2006, 19:33
Und z.B. das PCI Subsystem verwaltet die Karten und kann deren (vom BIOS) zugeordneten Speicherbereich (mapped memory) zurück geben sowie deren (vom BIOS) zugeordneten IRQ's zurück geben. Wenn die PCI Geräte noch nicht initialisiert wurden, dann kannst du genau dieses machen und somit musst du alle Resourcen verwalten um sie dann intelligent an die Hardware zu verteilen.
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#4

Re: e/a-programmierung

  Alt 31. Okt 2006, 20:35
ok
gehen wir mal davon aus: der rechner wird frisch eingeschaltet
wie kann ich jetzt beispielsweise eine kleine willkommens-meldung auf dem bildschirm ausgeben?
ich meine, ohne dabei auf interrupts zuzugreifen?
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: e/a-programmierung

  Alt 31. Okt 2006, 23:33
Ok, also Real Mode und als Bootsektor o.ä. angelagertes:

Schreibe deine Nachricht einfach in den Speicher der Grafikkarte. Dabei in den Speicher für den Textmodus (Segment b800h) und dort ab Offset 0. Dabei ist als erstes der Zeichencode (1 Byte) und darauf folgend der Farbcode (1 Byte). Daher musst du jedes Byte an einer geraden Adresse ein Zeichen deines Strings schreiben.

Diese Nachricht sollte dann zu sehen sein, aber bei folgenden Situationen nicht:

1. Der Rechner ist nicht im Textmodus
2. Er hat keine Grafikkarte *g*
3. Er hat keine CGA, EGA, MCGA, VGA oder S-VGA Karte sondern nur eine MDA Karte (Dann gleiches, nur halt an Segment b000h, gleicher Aufbau wie oben beschrieben)
4. Der Speicher der Grafikkarte wurde nicht eingeblendet an der Stelle.
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#6

Re: e/a-programmierung

  Alt 31. Okt 2006, 23:45
cool
das ist ja schon mal ein anfang
kennst du vielleicht auch noch entsprechende dokumente im netz mit denen man so richtig i/o-programmierung lernen kann?
im intel-handbuch steht bei i/o nur drin, wie man bytes zwischen prozessor und ports bzw memory hin- und herbewegt, aber dadurch bin ich leider immer noch nicht schlauer:

z.b. wo welches device zu finden ist und wie es ankommende daten interpretiert

mir is natürlich schon klar, dass das alles auch herstellerabhängig ist, aber die grundlegenede schnittstelle müsste ja bei so ziemlich allen gerätetypen gleich sein, oder? sonst könnte doch wohl kaum jeder standard-treiber eine grafik- bzw. soundkarte betreiben, oder (korrigiert mich, wenn ich mich irre...)

danke,

martin
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: e/a-programmierung

  Alt 31. Okt 2006, 23:56
Ich empfehle dir (ui, ich kann den ISBN Link nutzen) dazu ein amerikanisches Buch: http://www.amazon.de/exec/obidos/ASIN/0201479508/delphipraxis-21
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

Re: e/a-programmierung

  Alt 3. Nov 2006, 17:57
Im Lowlevel-Magazin findest du mehr zur OS-Programmierung.

Bug
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz