261
OS-Design / Kernel an virtuelle Adresse laden
« am: 22. May 2005, 14:28 »
erwischt Da hat doch jemand die Specs nicht richtig gelesen. Near Calls (Opcode 0xe8) und Near Jumps (Opcodes 0xeb und 0xe9) nehmen nur relative Angaben an! Es gibt noch absolute Angabemöglichkeiten (Opcode 0xff), nur da wird die Zieladdresse aus einem angegebenen Register oder einer angegebenen Speicherstelle geladen, sprich indirekt.
Wo immer absolute Addressen angegeben werden sind Far Jumps und Calls, sprich wenn noch der Segment Selector angegeben wird. Short Jumps sind ja nur eine Kurzform der NearJumps, die allerdings auch nur 127 bytes vor oder zurück im code springen können.
Aber das mit den nicht existenten ShortCalls stimmt
Wo immer absolute Addressen angegeben werden sind Far Jumps und Calls, sprich wenn noch der Segment Selector angegeben wird. Short Jumps sind ja nur eine Kurzform der NearJumps, die allerdings auch nur 127 bytes vor oder zurück im code springen können.
Aber das mit den nicht existenten ShortCalls stimmt