linux 0.11 head.s在第一个标号1处检测a20地址线是否开启,当执行完call check_x87检测到存在协处理器 0x100000 与0x000000必须相等才能ret
问题描述:
call check_x87检测到存在协处理器 0x100000与0x000000必须相等,这两个内存单元得值是在哪里实现相等的?
1: incl %eax
movl %eax,0x000000
cmpl %eax,0x100000
je 1b
movl %cr0,%eax
andl $0x80000011,%eax
orl $2,%eax
movl %eax,%cr0
call check_x87
check_x87:
fninit
fstsw %ax
cmpb $0,%al
je 1f
movl %cr0,%eax
xorl $6,%eax
movl %eax,%cr0
ret
.align 2
1: .byte 0xDB,0xE4
ret
答
我理解为协处理器正常工作后会置那个值,这里通过检测那个值来判断协处理器是否已正常工作