我的学习之旅(11) start32.s

49 篇文章 0 订阅
49 篇文章 0 订阅
/*拷贝linux head.s部分代码*/
setup_idt:
 lea ignore_int,%edx
 movl $0x00080000,%eax
 movw %dx,%ax  /* selector = 0x0008 = cs */
 movw $0x8E00,%dx /* interrupt gate - dpl=0, present */

 lea idt,%edi
 mov $256,%ecx
rp_sidt:
 movl %eax,(%edi)
 movl %edx,4(%edi)
 addl $8,%edi
 dec %ecx
 jne rp_sidt
 lidt idt_descr
 ret

setup_gdt:

 lgdt gdt_descr
 ret

.align 2
ignore_int:
/*do nothing*/ 
 iret
 
/*拷贝linux head.s部分代码*/

.align 2
.word 0


idt_descr:
 .word 256*8-1  # idt contains 256 entries
 .long idt
.align 2
.word 0
gdt_descr:
 .word 256*8-1  # so does gdt (not that that's any
 .long gdt  # magic number, but it works for me :^)

 .align 8
idt: .fill 256,8,0x0  # idt is uninitialized

gdt: .quad 0x0000000000000000 /* NULL descriptor */
 .quad 0x00c09a0000003fff /* 64Mb */
 .quad 0x00c0920000003fff /* 64Mb */
 .quad 0x0000000000000000 /* TEMPORARY - don't use */
 .fill 252,8,0   /* space for LDT's and TSS's etc */


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值