组装& lt; & lt;操作符



我正在学习一些关于操作系统开发的教程,并且我在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更清楚。

你还应该学会阅读使用手册,否则你在编程方面不会有太多的运气。

最新更新