> .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/
