Quote:
Originariamente inviato da misterx
grazie per la risposta
Ti risulta che quando compili il kernel questo ha già indirizzi fissi in memoria dove piazzarci le varie tabelle per le varie gestioni degli interrupt ad esempio e le eccezioni ?
|
Alcuni kernel possono memorizzare delle strutture a indirizzi fissi, ma in questo modo si legano all'architettura.
In generale è sempre meglio non fare assunzioni su dove mettere certe strutture, anche perché le architetture moderne permettono di rilocare praticamente qualunque dato.
Quote:
Originariamente inviato da misterx
accumulo un'altra domanda
Codice:
push eax
mov eax, 0+4(esp)
mov (old_eip), eax
mov eax, 4+4(esp)
mov (old_cs), eax
mov eax, 8+4(esp)
mov (old_eflags), eax
come mai non viene memorizzato il contenuto dello stack direttamente nelle variabili ma si passa prima dal registro eax ?
Cioè anzichè:
Codice:
mov eax, 0+4(esp)
mov (old_eip), eax
non si scrive:
Codice:
mov (old_eip), 0+4(esp)
|
Perché non hai un Motorola 68000, ma un ben più semplice 80386.