> .bss
> idtr:
> .double
> .text
> .globl get_gate
> get_gate:
>       movl    $0x80, %eax
>       sidt    idtr
>       movl    idtr+2, %ebx
>       leal    (%ebx, %eax, 8), %ebx
>       movw    (%ebx), %cx     <- si aici crapa
> 
> de aproape o luna ma intreb de ce oare..
> 1. adresa la care se afla IDT (conform codului meu) este 0xc3800000 deci
> este in memoria virtuala.

E peste 3G, unde se termina spatiul unui proces. Acolo ar tb. sa fie
kernel-ul, dar cred ca trebuie sa-l accesezi via fs, nu ds.

> 2. movl (%ebx), %cx este transfer din memorie intr-un registru

S-ar putea ca descriptorul pointat de ds sa aiba limit la 3G ->
segmentation fault.

Matei
---
<a href="mailto:[EMAIL PROTECTED]?Subject=unsubscribe%20rlug";>unsubscribe</a>

REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui