Linux内核中常用的汇编(3)

( 7 ) space size , fill

这个指令保留 size 个 字节的空间,每个字节的值为 fill 。 size 和 fill 都是常量表达式。如果逗号和 fill 被省略,则假定 fill 为 0 ,例如在 arch/i386/bootl/setup.S 中有一句:

.space  1024

表示保留 1024 字节的空间,并且每个字节的值为 0 。

( 8 ) .word expressions

这个表达式表示任意一节中的一个或多个表达式(用逗号分开),表达式的值占两个字节,例如:

gdt_descr:

.word GDT_ENTRIES*8-1

表示变量 gdt_descr 的置为 GDT_ENTRIES*8-1

( 9 ) .long expressions

这与 .word 类似

( 10 ) .org new-lc , fill

把当前节的位置计数器提前到 new-lc ( new location counter )。 new-lc 或者是一个常量表达式,或者是一个与当前子节处于 同一节的表达式。也就是说,你不能用 .org 横跨节:如果 new-lc 是个错误的值,则 .org 被忽略。 .org 只能增加位置计数器的值,或者让其保持不变;但绝不能用 .org 来让位置计数器倒退。

注意,位置计数器的起始值 是相对于一个节的开始的,而不是子节的开始。当位置 计数器被提升后,中间位置的字节被填充值 fill (这也是一个常量表达式)。如果逗号和 fill 都省略,则 fill 的缺省值为 0 。

例如: .org 0x2000

ENTRY( pg0)

表示把位置计数器置为 0x2000 ,这个位置存放的就是临时页表 pg0 。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwpjgz.html