`

align num

 
阅读更多

align是个负责内存对齐的宏,它会补充一些数据以便下面的数据对齐。

 

对齐伪指令格式:

 

ALIGN  Num                                   (其中:Num必须是2的幂,如:2、4、8和16等)

 

伪指令的作用是:告诉汇编程序,本伪指令下面的内存变量必须从下一个能被Num整除的地址开始分配。如果下一个地址正好能被Num整除,那么,该伪指令不起作用,否则,汇编程序将空出若干个字节,直到下一个地址能被Num整除为止。

 

align 32

会被展开成类似

times (((32) - (($-$$) % (32))) % (32)) nop

的代码。

 

它就是为了数据对齐的。使用影响对齐的数据类型后就需要用align填充一下,以便后面的数据可以对齐到边界上。

 

个人认为,定义一个段的时候用一下align32程序中如果定义了非标准的数据结构,譬如

db 1,2,3

而后面需要定义一个dd 4

那么建议就是

db 1,2,3

align 4

dd 4

这里的align 4是为了将4字节变量dd 4定义到4字节边界上。

 

段首最好是32字节对齐的。不过也不是必须。实模式每段是64kb大小,段寄存器中保存的是地址的高16位,ip寄存器保存的是地址的低16位。这样的话段寄存器每加1在ip相同的情况下地址相差16个字节。所以对齐到16字节边界可以让段的表现更稳定。

对齐到32字节边界应该是为了适应256位高速缓存而做的优化。

 

 

align 32不是必须的,有时候想起来就加了,有时候忘了就没加,程序运行都不会错。没必要较真,作者加了不代表那里必须得加,不代表有什么重要的理由需要加;没加也不代表那里就完全不需要。对于这些锦上添花的东西没必要太较真。

 

 

参考资料:

http://blog.csdn.net/erazy0/article/details/6058876

分享到:
评论

相关推荐

    HTML&JavaScript经典PPT 讲的都是重点

    num1=parseFloat(document.myform.num1.value); num2=parseFloat(document.myform.num2.value); if (op=="+") document.myform.result.value=num1+num2 ; if (op=="-") document.myform.result.value=num1-num...

    网页计算器

    function four(str_value,num0,num1){ if(str_value.indexOf("-")>0){ var arr=str_value.split("-"); num0=arr[0]*1; num1=arr[1]*1; document.form1.data.value=num0-num1; }else if(str_value.indexOf("+...

    css 垂直对齐 css中vertical-align属性(垂直对齐)的使用说明

    #hot-sou ul li em.num, #hot-sou ul li a { vertical-align: middle; } ``` 4. 兼容性与限制: 要注意的是,`vertical-align`只对行内元素和表格单元格元素生效,对块级元素无效。这意味着它不能直接应用于`...

    table点击表头排序

    // <td align="center"><span id="idNum">ID</span></td> // <td> 名称</span> / 类型</span></td> // <td width="100" align="center">上传时间</span></td> // <td width="50" align="center">大小</span></...

    简单学生成绩管理系统

    <td><div align="center"><%=num%></div></td> <td><div align="center"><%=name%></div> <td><div align="center"><%=score%></div> <td><div align="center">修改资料" onclick="location.href='edit.jsp?num=...

    用ASP制作网页计数器

    Application("Num") = Application("Num") + 1 Response.Write(Application("Num")) %> 位访问者 ``` 这段代码的功能是每当用户访问该页面时,计数器会增加1,并显示当前的访问次数。 ##### 4.2 进程...

    猜数题,JSP,全是JSP页面,没有SERVLET和BEAN

    <table width="670" border="0" height="401" align="center"> <tbody><tr> <div align="center"> 随即生成一个0到100之间的整数,请猜测! <p> <div align="center"> ...

    javascript-简单的计算器实现步骤分解(附图)

    '*': function(num1, num2) { return num1 * num2; }, '/': function(num1, num2) { return num1 / num2; } }; ``` #### 输入内容的判断和事件处理 接下来,需要对计算器的每个按钮绑定事件处理函数。在事件处理...

    Java相关课程系列笔记之十JSP学习笔记

    text -align: center; line-height: 16px; width: 16px; height: 16px; font-family: Arial; font-size: 12px; cursor: pointer; overflow: hidden; margin: 3px 1px; border: 1px solid #FF7300; }

    计算器JSP 四则运算

    <div align="center"><input type="text" size="10" name="num1"> <select size="1" name="op"> <option value="+">+(加)</option> <option value="-">-(减)</option> *">*(乘)</option> ...

    php的增删改查的源代码

    if(mysql_num_rows($result)>0){ ?> <table border="1" align="center" background="#99CCFFLL"> <td align="center">ID <td align="center">username <td align="center">address <td align="center">...

    在ASP中轻松实现记录集分页显示

    If page * rs1.PageSize > num And Not ((page - 1) * rs1.PageSize > num) Then page = 1 End If rs1.AbsolutePage = page ``` 4. **显示当前页记录**:根据当前页码显示相应的记录。 - 示例代码: ```asp ...

    google地球多段线上等距取点VBA代码(已知一点经纬度,方位角,距离,求另一点经纬度 简化算法)

    Num = Num + 1 i = i + 1 Sheets("基础表").Cells(Num, "D").Value = Sheets("基础表").Cells(i, "B").Value Sheets("基础表").Cells(Num, "E").Value = Sheets("基础表").Cells(i, "C").Value End If ' ...

    servlet分页通用代码

    total_num / page_num : total_num / page_num + 1; // 获取当前页码 String page_str = request.getParameter("page_no"); if (page_str == null) { page_str = "1"; } int page_no = Integer.valueOf(page_str);...

    python 自动办公- Excel_xlrd读_xlwt写.zip

    align: horiz center') worksheet.write(1, 0, 'Centered', style) ``` 5. **保存文件**:最后,别忘了使用`save()`方法将工作簿保存为Excel文件。 ```python workbook.save('output.xls') ``` 结合xlrd和xlwt,你...

    微信小程序demo:加法计算器(1).rar

    align-items: center; } ``` - JavaScript文件:处理用户交互和计算逻辑。 ```javascript Page({ data: { result: '0' }, handleInput1: function(e) { this.setData({ num1: e.detail.value }); }, handle...

    web实验三计算器和时间显示.pdf

    - **居中文本**:`text-align: center;` 属性确保了表格内的文本居中显示。 #### JavaScript计算逻辑 - **函数定义**:`function calculate()` 定义了一个名为`calculate`的函数,用于处理用户的输入并进行计算。 -...

    PHP列出当前目录下所有文件大小及链接(utf-8)

    $num=0; //用来记录目录下的文件个数 $dirname='./'; //要遍历的目录名字 $dir_handle=opendir($dirname);...text-align:center">在<b>'.$dirname.'目录下的子目录和文件共有<b>'.$num.'个 占空间';

    jquery加入购物车数量加减

    text-align: center; } ``` 最后,`images`文件夹可能包含一些图标或者按钮的背景图片,以增强视觉效果。如果有的话,可以在CSS中通过`background-image`属性引用这些图片。 总的来说,这个实例展示了`jQuery`...

Global site tag (gtag.js) - Google Analytics