Chinaunix首页 | 论坛 | 博客
  • 博客访问: 502199
  • 博文数量: 76
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1534
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-10 16:28
文章分类
文章存档

2010年(1)

2009年(3)

2008年(72)

我的朋友

分类: LINUX

2008-08-27 13:19:34

.balign[wl] abs-expr, abs-expr, abs-expr

增 加位置计数器(在当前子段)使它指向规定的存储边界。第一个表达式参数(结果必须是纯粹的数字)是必需参数:边界基准,单位为字节。例 如,'.balign 8'向后移动位置计数器直至计数器的值等于8的倍数。如果位置计数器已经是8的倍数,则无需移动。第2个表达式参数(结果必须是纯粹的数字)给出填充字节 的值,用这个值填充位置计数器越过的地方。第2个参数(和逗点)可以省略。如果省略它,填充字节的值通常是0。但在某些系统上,如果本段标识为包含代码, 而填充值被省略,则使用no-op指令填充空白区。第3个参数的结果也必须是纯粹的数字,这个参数是可选的。如果存在第3个参数,它代表本对齐命令允许跳 过字节数的最大值。如果完成这个对齐需要跳过的字节数比规定的最大值还多,则根本无法完成对齐。您可以在边界基准参数后简单地使用两个逗号,以省略填充值 参数(第二参数);如果您在想在适当的时候,对齐操作自动使用no-op指令填充,本方法将非常奏效。

.balignw 和.balignl是.balign命令的变化形式。.balignw使用2个字节来填充空白区。.balignl使用4字节来填充。例 如,.balignw 4,0x368d将地址对齐到4的倍数,如果它跳过2个字节,GAS将使用0x368d填充这2个字节(字节的确切存放位置视处理器的存储方式而定)。
如果它跳过1或3个字节,则填充值不明确。
阅读(2782) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~