- 论坛徽章:
- 0
|
内核启动时,预填充中断idt的操作如下:
498 setup_idt:
499 lea ignore_int,%edx
500 movl $(__KERNEL_CS << 16),%eax
501 movw %dx,%ax /* selector = 0x0010 = cs */
502 movw $0x8E00,%dx /* interrupt gate - dpl=0, present */
503
504 lea idt_table,%edi
505 mov $256,%ecx
506rp_sidt:
507 movl %eax,(%edi)
508 movl %edx,4(%edi)
509 addl $8,%edi
510 dec %ecx
511 jne rp_sidt
其中
499 lea ignore_int,%edx
500 movl $(__KERNEL_CS << 16),%eax
501 movw %dx,%ax /* selector = 0x0010 = cs */
是计算函数ignore_int地址
我想问的是为什么需要这样计算呢,而ignore_int不是函数的地址??? |
|