汇编中 << 有什么作用?
最近在看关于一个玩具操作系统的内核源代码的时候, 出现了类似这样的语句 :
; ----------------------------------------------------------------
;
; boot.s -- 内核从这里开始
;
; ----------------------------------------------------------------
; Multiboot 魔数,由规范决定的
MBOOT_HEADER_MAGIC equ 0x1BADB002
; 0 号位表示所有的引导模块将按页(4KB)边界对齐
MBOOT_PAGE_ALIGN equ 1 << 0
; 1 号位通过 Multiboot 信息结构的 mem_* 域包括可用内存的信息
; (告诉GRUB把内存空间的信息包含在Multiboot信息结构中)
MBOOT_MEM_INFO equ 1 << 1
如果我没看错的话这应该是Intel风格的x86汇编, 它宏定义前面这个名字为 1 << 0
和 1 << 1
但是我因为我从来没在汇编中看过1 << 0
, 想知道这也是表达将1向左移动0位, 将1向左移动1位
的意思吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
确实是左移。
内核下为了省内存,配置一般用flag表示。
即一个DWORD共32未就可以表达32种配置。
意思是将第1位置
true
同理1<<0是将第0位置
true