我正在学习一些关于操作系统开发的教程,并且我在multiboot头。这些是你必须定义的一些"魔法"值GRUB2。以下是命令:
# Declare constants used for creating a multiboot header.
.set ALIGN, 1<<0 # align loaded modules on page boundaries
.set MEMINFO, 1<<1 # provide memory map
.set FLAGS, ALIGN | MEMINFO # this is the Multiboot 'flag' field
.set MAGIC, 0x1BADB002 # 'magic number' lets bootloader find the header
.set CHECKSUM, -(MAGIC + FLAGS) # checksum of above, to prove we are multiboot
.section .multiboot
.align 4
.long MAGIC
.long FLAGS
.long CHECKSUM
现在我不明白,我找不到任何地方,是什么1<<0和1<<1当我们设置align和meminfo.
提前感谢!
如果您对操作系统开发感兴趣,您肯定已经在其他语言中遇到过<<
操作符吧?是按位向左移位。它只是用来定义一些常数,基于位下标。应该比写.set ALIGN 1
和.set MEMINFO 2
更清楚。
你还应该学会阅读使用手册,否则你在编程方面不会有太多的运气。