首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >装配<<算子

装配<<算子
EN

Stack Overflow用户
提问于 2014-05-14 16:06:53
回答 1查看 3.1K关注 0票数 3

我正在学习一些关于操作系统开发的教程,我找到了一篇关于多重引导头的文章。为了让它与GRUB2一起工作,您必须定义这些“神奇”值。以下是命令:

代码语言:javascript
复制
 # 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做什么,当我们.set对齐和备忘录信息。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 16:12:24

当然,如果您对操作系统开发感兴趣,您已经在其他语言中遇到过<<操作符了吗?这是按位向左移动。它只是用于在这里定义一些常量,基于位索引。据推测,这比写.set ALIGN 1.set MEMINFO 2要清楚得多。

您还应该学会阅读手册,否则编程就不会有多大的进展了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23659820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档