hallo!
ich bin dabei, eine funktion zu schreiben, die bei einem programmabbruch die register vor der abbruch ausgiebt. mit den dingern, wie AX und DI und ES und so komme ich noch zurecht, mit SP und BP und CS und SS nimmer!
bei SS weiß ich, dass es immer den boden des stacks hat, also immer den eingestellten wert, sodass ich das nicht ausgeben muss.
bei SP, BP und CS habe ich das problem, dass die sich ja beim ausführen ändern! bei SP habe ich die idee, dass ich nach dem funktionsaufruf pusha mache, und damit SP und BP auf den stack nehme. jetzt habe ich aber das problem, wie ich SP da wieder rauswurschtle! ich habe es so versucht (weil vor dem ausführen von pusha SP noch gespeichert wird, und nur AX, BX, CX, DX, SP, BP, SI und DI gespeichert sind, müsste ja unter den 8 words SP liegen):
mov bx,WORD [sp-16]
problem: es kommt "invalide effective adress"
genauso, wenn ich BP so holen will:
mov bx,WORD [sp-12]
kommt der gleiche fehler!
ich hoffe, es kann mir jemand helfen,
danke!