Moin ^^
Wenn ich keinen Stack verwende und die Farbwerte manuell nach BX vor dem Call schreibe funktionierts und es ist schön bunt.
Sobald die Parameter aber über den Stack gehen setzt es in der Stage1 aus.
Du nutzt ja ein Macro um die Parameter auf den Stack zu pushen, wenn ich das richtig verstehe ist der erste Parameter derSstring und der zweite die Farbe.
f_print fd_read, 0x0009
Im stage2 nutzt du bei dem Text der ausgegeben wird 0x000F eventuell liegts daran das du nur den Text sehen kannst?
Ja, mit einem Makro - richtig. Das find ich persönlich besser vom Handling, weil man nur 1x den korrekten Funktionsaufruf inkl. Stack-Operationen programmieren muss.
Mit der Farbe hat das aber nichts zu tun, sonst würde der Text von der Stage2 nicht ganz links oben erscheinen.
Folgendes kann ich als Fehlerquelle definitiv ausschließen:
- Parameter String(adresse) bzw. Farbe
- Unterprogramm "setVideomode"
Ich hab mir schon überlegt, ob es nicht sein kann, dass nach dem Initialisieren des Stacks irgendwas geflusht werden muss, damit es auch übernommen wird (ähnlich wie beim far jump zum P-Mode Code? <- wenn ich das richtig verstanden hab)
Gibts da irgendwelche Befehle?
DEBUG-STUFF
rax: 0x00000000:00000e00 rcx: 0x00000000:00000000
rdx: 0x00000000:00000000 rbx: 0x00000000:00000000
rsp: 0x00000000:00000ff4 rbp: 0x00000000:00000ffa
rsi: 0x00000000:000e08ad rdi: 0x00000000:0000ffac
r8 : 0x00000000:00000000 r9 : 0x00000000:00000000
r10: 0x00000000:00000000 r11: 0x00000000:00000000
r12: 0x00000000:00000000 r13: 0x00000000:00000000
r14: 0x00000000:00000000 r15: 0x00000000:00000000
rip: 0x00000000:00007c58
eflags 0x00000046: id vip vif ac vm rf nt IOPL=0 of df if tf sf ZF af PF cf
Stack address size 2
| STACK 0xadf4 [0x0ff6] TEST: aktueller SP gepusht
| STACK 0xadf6 [0x09e0] TEST: SS gepusht
| STACK 0xadf8 [0x0ffa] TEST: neuer BP (= alter SP) gepusht
| STACK 0xadfa [0x1000] alter BP / 1. Zeile im Unterprogramm
| STACK 0xadfc [0x7c85] BP+2 > Rücksprung
| STACK 0xadfe [0x0007] BP+4 > Param1: Lightgray
| STACK 0xae00 [0x0000] >>> ANFANG <<<
-------------------------------------------------------------------------------------------
__TESTWERTE__
SS:SP = 0xadf6 > SP=0x0ff4 OK. (SUB SP 2) kommt erst nach dem PUSH (siehe RSP)
SS:BP = 0xadfa OK.
SS:SP_alt = 0xadfa OK.
SS:BP_alt = 0xae00 OK.
-------------------------------------------------------------------------------------------
Der Stack ist also auch nicht das Problem, wenn die Werte korrekt draufliegen.
... ich, wie sehr wahrscheinlich gleich auch noch mehrere andere, rate dir dazu Grub zu benutzen.
von GRUB bin ich keinesfalls abgeneigt
ich möchte nur mal schauen, wei weit ich selber komme - zwecks Verständnis undso
Greets