Frage zum Interruptaufruf im P-Mode und noch andere Sachen...



  • Hallo zusammen,

    ich habe mein Programm noch etwas überarbeitet.
    http://www.c-plusplus.net/forum/299652
    Sobald ich wie bei Herr Henkes ganz oben [Bits 16] und im P-Mode [Bits 32]
    angebe, erhalte ich weiterhin diesen Prozessorfehler.

    Ich habe es weggelassen und es läuft tadellos. 😕

    Welchen Grund hat man diese Angaben im Code zu machen?

    Jedenfalls gleich noch eine IDT installiert mit IRQ 0 - 34.

    Ich möchte gern meine Stringausgabefunktion in einen IRQ packen (0-31 ist ja
    reserviert) also nahm ich IRQ 32.

    Beim Aufruf mit INT 20h wird der String richtig ausgegeben aber
    unmittelbar dannach wird der IRQ 13 (Allgemeine Schutzverletzung) aufgerufen.

    Worauf muss ich bei der Rückkehr vom IRQ 32 achten?

    IRQ_32:
    mov esi, sz32
    call PRINT
    iret
    

    Ich weiß das eine .com Datei "nur" 64KB gross sein kann damit sie läuft.
    Kann man dennoch größere Dateien erzeugen?

    Ich kann mir nicht vorstellen das NASM schaut wie groß die Datei ist, da
    es ja so oder so (für mich) nur eine flache Binärdatei erstellt, oder?

    Bei MASM wird glaub ich auf Größe geprüft, da man ja angibt das man eine .com
    haben möchte.

    Tipps und Ratschläge nehme ich wie immer gern entgegen...

    Gruß, Nicky



  • supernicky schrieb:

    Ich weiß das eine .com Datei "nur" 64KB gross sein kann damit sie läuft.
    Kann man dennoch größere Dateien erzeugen?

    Das geht locker, aber erst mit ein bißchchem mehr Verständnis für den (nicht ganz einfach zu durchschauenden) Real Mode, (eventuell)den Virtual Mode und Dos-Relokation.



  • supernicky schrieb:

    Hallo zusammen,

    ich habe mein Programm noch etwas überarbeitet.
    http://www.c-plusplus.net/forum/299652
    Sobald ich wie bei Herr Henkes ganz oben [Bits 16] und im P-Mode [Bits 32]
    angebe, erhalte ich weiterhin diesen Prozessorfehler.

    Ich habe es weggelassen und es läuft tadellos. 😕

    Welchen Grund hat man diese Angaben im Code zu machen?

    Wenn man beim kompilieren den Parameter -O32 vergisst stürzt es halt ab 🕶

    Nicky


Anmelden zum Antworten