Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13
  1. #1
    Sobig Wurm
    Registriert seit
    19.06.2007
    Beiträge
    215

    Standard ASM Schnipsel erklären

    Ich habe in der Schule ein Delphi Programm zur Ansteuerung eines Lauflichts unter WinME geschrieben. Um den Parallel Port anzusteuern musste ich mir ein paar Zeilen Assembler klauen, da ich aber keine Ahnung von Assembler habe bräuchte ich jemanden der mir den Code so erläutern kann, so dass es auch der Rest meines Kurses versteht, wenn ich das Programm vorstelle.
    Hier der Code:
    Code:
    mov dx,378h
    mov al,x
    out dx,al
    x wird zurückgegeben

  2. #2
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    mov (für move) nimmt zwei Parameter:
    mov DESTINATION, SOURCE

    mov dx, 378h entspricht also so etwas:
    dx := 0x378
    dx ist ein 16 Bit großes Universalregister.
    dx steht für Data Register und wird vom Programmierer in der Regel wie eine Variable benutzt!
    379h steht für die Hexadezimalzahl 379.

    al ist auch ein Universalregister! (ax = Akkumulator [sofern ich das jetzt richtig geschrieben habe] Register, 16 Bit).
    mov al, x
    bedeutet also:
    al := x

    Mit dem Befehl out sendet man Daten an einen Port.
    Der Syntax ist:
    out PortNummer, Daten

    Dein Code macht also folgendes:
    es wird der Inhalt von x an den Port mit der Nummer 0x378 gesendet!


    mfG. BlackBerry


    EDIT:
    Pseudocode:
    Code:
    FUNKTION AN_PORT_SENDEN( 16_BIT_PARAMETER x )
    
         port_adresse := 0x378
         zu_sendende_daten := x
    
         SENDEN( port_adresse, zu_sendende_daten )
    
    FUNKTION ENDE
    Geändert von blackberry (22.03.2009 um 12:58 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  3. #3
    is a Grammar Nazi Avatar von Hamtaro
    Registriert seit
    05.06.2007
    Beiträge
    431

    Standard

    Das dürfte aber ab WIndows NT nicht mehr funktionieren, weil man dann imho nicht mehr dirket mit der Hadware kommunizieren darf (Treiber ausgeschlossen)
    Sunshine, hurricane
    All the highs & lows

  4. #4
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Er hat gesagt er benutzt WinME (Millenium Edition -> 2000).
    Das sollte also gehen!

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  5. #5
    is a Grammar Nazi Avatar von Hamtaro
    Registriert seit
    05.06.2007
    Beiträge
    431

    Standard

    upps, peinlich
    Stimmt ja
    Sunshine, hurricane
    All the highs & lows

  6. #6
    Sobig Wurm
    Registriert seit
    19.06.2007
    Beiträge
    215

    Standard

    Das Programm läuft unter ME einwandfrei, unter XP müsste man irgendwelche Treiber/API Funktionen(?) nutzen, das war aber in der Kürze der Zeit nicht machbar.
    thx @ BlackBerry

  7. #7
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Wenn das eine Frage sein sollte

    Über den COM2-Port kommunizieren:
    Code:
    HANDLE hCom = CreateFile(
        "COM2",
        GENERIC_READ | GENRIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        0,
        NULL
    );
    Und dann mit SetCommState ( http://msdn.microsoft.com/en-us/libr...36(VS.85).aspx ) die einzelnen Ausgänge "unter Strom setzen"


    mfG. BlackBerry

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  8. #8
    Der `Toastflüsterer` Avatar von AlterHacker
    Registriert seit
    27.09.2008
    Beiträge
    690

    Standard

    Zitat Zitat von BlackBerry Beitrag anzeigen
    Wenn das eine Frage sein sollte

    Über den COM2-Port kommunizieren:
    Code:
    HANDLE hCom = CreateFile(
        "COM2",
        GENERIC_READ | GENRIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        0,
        NULL
    );
    Und dann mit SetCommState ( http://msdn.microsoft.com/en-us/library/aa363436(VS.85).aspx ) die einzelnen Ausgänge "unter Strom setzen"


    mfG. BlackBerry

    Unter linux mit outb und ioperm

    Damit ein feines script gemacht, wenn tür auf, 20 Sekunden Zeit, PC zu "defusen" ansonsten werden truecrypt-container dismounted.

    Security is an illusion.
    Cheater : 8=o
    Normaluser : 8=======o
    Ich : 8================o

    BM: (4|2|0)

  9. #9
    Sobig Wurm
    Registriert seit
    19.06.2007
    Beiträge
    215

    Standard

    @BlackBerry War eigentlich keine Frage ^^
    Trotzdem danke, werd das wenn ich nachm Abi wieder Zeit hab noch einbauen

  10. #10
    is a Grammar Nazi Avatar von Hamtaro
    Registriert seit
    05.06.2007
    Beiträge
    431

    Standard

    @AlterHacker: Paranoia ist keine Eissorte

    Sowas finde ich aber interessant, wie hast du dir das technische Wissen dazu angeeignet bzw. wo hast du die Bauteile her?
    Sunshine, hurricane
    All the highs & lows

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •