Diskussion:Teil 5 - Interrupts
Aus Lowlevel
EOI?
Was bedeutet den EOI. Diese Abkürzungen finde ich, sollte man nur in Tutorials verwenden, wenn man den vollständigen Begriff vorher schon mal genannt hat. --Sebi2020 16:28, 16. Dez. 2009 (CET)
End of Interrupt --Bluecode 17:19, 16. Dez. 2009 (CET)
add esp,4
na<h dem call interupt_handler, wozu soll dass add esp,4 da? ich versteh nicht was da vom stack genommen wird. ich mein die funktion gibt doch nichts zurück -.-. ich mein der aufruf parameter wird doch automatisch von c wieder vom stack genommen, oder täusche ich mich da? (Der vorstehende, nicht signierte Beitrag stammt von Sebi2020 13:50, 22. Dez. 2009 (CET))
- Genau, da täuschst du dich: http://de.wikipedia.org/wiki/Aufrufkonvention#cdecl ;-) --XanClic 15:56, 22. Dez. 2009 (CET)
- Also der verlinkte beitrag wiederspricht dir und sagt, dass c dass sehr wohl tut. --Sebi2020 20:09, 22. Dez. 2009 (CET)
- Natürlich tut C das, irgendwie muss es ja runter. Aber die Funktion macht das nicht für dich, das macht immer der Aufrufer. Und wenn der Aufrufer kein C-Code ist, dann passiert es eben nicht automatisch. Das entsprechende Zitat im Artikel ist: "Um wieder auf die Position von vorher zu kommen, muss im Anschluss an den Aufruf wieder 12 auf den Wert im ESP-Register addiert werden." --XanClic 21:15, 22. Dez. 2009 (CET)
- Dann musst du dass auch sagen, dass es um den Aufrufer geht --Sebi2020 10:46, 23. Dez. 2009 (CET)
- Muss ich nicht, weil das meiner Meinung nach klar war. Wenn du zu einem Assemblerstub sagst, der eine C-Funktion aufruft: "Das macht C doch automatisch", dann war es aus meiner Sicht korrekt zu sagen, "macht es nicht", weil hier nur die aufgerufene Funktion in C geschrieben ist und die macht es eben nicht. --XanClic 12:40, 23. Dez. 2009 (CET)
- Dann musst du dass auch sagen, dass es um den Aufrufer geht --Sebi2020 10:46, 23. Dez. 2009 (CET)
- Natürlich tut C das, irgendwie muss es ja runter. Aber die Funktion macht das nicht für dich, das macht immer der Aufrufer. Und wenn der Aufrufer kein C-Code ist, dann passiert es eben nicht automatisch. Das entsprechende Zitat im Artikel ist: "Um wieder auf die Position von vorher zu kommen, muss im Anschluss an den Aufruf wieder 12 auf den Wert im ESP-Register addiert werden." --XanClic 21:15, 22. Dez. 2009 (CET)
- Also der verlinkte beitrag wiederspricht dir und sagt, dass c dass sehr wohl tut. --Sebi2020 20:09, 22. Dez. 2009 (CET)
pusha/popa
Ich habe den Code grad mal überflogen, da ist mir aufgefallen, dass da
push %ebp push %edi push %esi push %edx push %ecx push %ebx push %eax
steht. Wie wäre es mit einem einfachen "pusha" und entsprechend dazu popa weiter unten?! --Bjork 21:12, 8. Feb. 2010 (CET)
- Es könnte sein, dass alles einzeln zu speichern/wiederherzustellen etwas schneller ist (dazu hatte ich mal eine Diskussion), schlimmstenfalls ist es wohl gleich schnell wie ein pusha/popa. --XanClic 21:34, 8. Feb. 2010 (CET)
- Ein Vorteil ist, dass dadurch die Reihenfolge der Register explizit ist. Der Aufbau von struct cpu_state ist damit klarer. --Jidder 22:36, 8. Feb. 2010 (CET)

