mikrocontroller.net

Forum: PC-Programmierung define in c für asm mit rückgabewert


Autor: anfeanger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir bitte jemand zeigen/schreiben, wie ich ein define für die 
Funktion inb erzeuge? danke.

unsigned char inb(unsigned short int port)
  {
  unsigned char data = 0x00;

  asm("mov %1, %%dx;inb %%dx, %0;" : "=r" (data) : "g" (port));

  return(data);
  }

#define outb(value, port) asm("mov %0, %%dx;mov %1, %%al;out %%al, 
%%dx;" : : "g" (port), "g" (value));

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was stört dich an der Funktion?
Warum benutzt du nicht inb/outb aus den Systemheadern?

Autor: anfeanger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Stell mir doch mal eine Frage die ich dir beantworten kann ...

Also ich wollte, dass ein bestimmter Quellcode unter linux und windows 
absolut identisch ist. Irgendwie habe ich die Erfahrung gemacht, dass 
die Funktionen inb und outb unter Windows/DOS nicht verfügbar sind. Also 
in den header-dateien die mit "C and C++ IDE 4.0.0.0" mitgeliefert 
werden finde ich die nicht. Auch im MinGW paket finde ich dich. Mag sein 
dass ich mich nur zu blöd anstelle aber ich wollte da "hokus pokus" ein 
Ergebnis haben welches ich an dieser Stelle auch direkt einmal 
präsentieren möchte.

Was C angeht habe ich ein wenig hier gelesen, ein wenig dort gelesen, 
die Prozessoren von Atmel habe ich auch schon mehrfach erfolgreich mit 
GCC zum funktionieren gebracht.

Eigentlich wäre eine Antwort auf meine ursprüngliche rage ja nicht so 
wichtig da dass was ich da vorhatte ja funktioniert. Interessieren würde 
mich eine Lösung dennoch. Wenn es denn keine Umstände macht.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
anfeanger schrieb:
> Kann mir bitte jemand zeigen/schreiben, wie ich ein define für die
> Funktion inb erzeuge? danke.

Hallo,

ist dir klar, dass unter Windows kein I/O-Portzugriff zulässig ist?

Gruss Reinhard

Autor: anfeanger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reinhard Kern schrieb:

> ist dir klar, dass unter Windows kein I/O-Portzugriff zulässig ist?

Also dass das nicht zulässig sein soll war mir nicht bekannt. Aber da 
das mein Computer ist, und ich auf den Druckerport zugreifen will, tue 
ich das. Aus diesem Grund schrieb ich ja die weiter oben dargestellen 
Funktionen welche hier tadellos funktionieren.

Das wäre ja  noch schöner wenn ich mir hier vorschreiben liesse was mein 
Computer können darf und was nicht.

Autor: anfeanger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da fällt mir ein, für Windows gibt es unter anderem die Datei 
inpout32.dll welche einen IO-Zugriff ermöglicht. Diese lässt sich unter 
anderem in VB nutzen. So lässt sich dann eine Active-X Komponente 
erzeugen. Diese wiederum kann dann auch in VBScript genutzt werden. Also 
wenn das funktioniert ...

Ich will ja jetzt keinen Streit anzetteln ... aber wenn man mit linux 
IO-Zugriff haben kann dann seh ich keinen Grund warum windows das nicht 
auch können darf.

Das wäre so als würde ich behaupten dass ich jetzt etwas besseres wäre 
als ihr. Linux is auch nur ein Betriebssystem.

Autor: anfeanger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Reinhard Kern

Ah... jetzt fällt hier der Gröschen... du willst sicherlich auf Windows 
NT Systeme anspielen so wie hier beschrieben:

   http://www.pci-card.com/menu3.html

Ich darf zu meiner Schande gestehen, dass ich noch immer mit windows 98 
arbeite und daher nie wirklich Probleme mit irgendwelchen IO-Zugriffen 
hatte, was wiederum der Grund ist dass ich dieses noch immer nutze. 
Jetzt bitte keine Sprüche zu dem von mir noch genutzen Windows 98 ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.