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
分享到:
相关推荐
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("+...
#hot-sou ul li em.num, #hot-sou ul li a { vertical-align: middle; } ``` 4. 兼容性与限制: 要注意的是,`vertical-align`只对行内元素和表格单元格元素生效,对块级元素无效。这意味着它不能直接应用于`...
// <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=...
Application("Num") = Application("Num") + 1 Response.Write(Application("Num")) %> 位访问者 ``` 这段代码的功能是每当用户访问该页面时,计数器会增加1,并显示当前的访问次数。 ##### 4.2 进程...
<table width="670" border="0" height="401" align="center"> <tbody><tr> <div align="center"> 随即生成一个0到100之间的整数,请猜测! <p> <div align="center"> ...
'*': function(num1, num2) { return num1 * num2; }, '/': function(num1, num2) { return num1 / num2; } }; ``` #### 输入内容的判断和事件处理 接下来,需要对计算器的每个按钮绑定事件处理函数。在事件处理...
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; }
<div align="center"><input type="text" size="10" name="num1"> <select size="1" name="op"> <option value="+">+(加)</option> <option value="-">-(减)</option> *">*(乘)</option> ...
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">...
If page * rs1.PageSize > num And Not ((page - 1) * rs1.PageSize > num) Then page = 1 End If rs1.AbsolutePage = page ``` 4. **显示当前页记录**:根据当前页码显示相应的记录。 - 示例代码: ```asp ...
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 ' ...
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);...
align: horiz center') worksheet.write(1, 0, 'Centered', style) ``` 5. **保存文件**:最后,别忘了使用`save()`方法将工作簿保存为Excel文件。 ```python workbook.save('output.xls') ``` 结合xlrd和xlwt,你...
align-items: center; } ``` - JavaScript文件:处理用户交互和计算逻辑。 ```javascript Page({ data: { result: '0' }, handleInput1: function(e) { this.setData({ num1: e.detail.value }); }, handle...
- **居中文本**:`text-align: center;` 属性确保了表格内的文本居中显示。 #### JavaScript计算逻辑 - **函数定义**:`function calculate()` 定义了一个名为`calculate`的函数,用于处理用户的输入并进行计算。 -...
$num=0; //用来记录目录下的文件个数 $dirname='./'; //要遍历的目录名字 $dir_handle=opendir($dirname);...text-align:center">在<b>'.$dirname.'目录下的子目录和文件共有<b>'.$num.'个 占空间';
text-align: center; } ``` 最后,`images`文件夹可能包含一些图标或者按钮的背景图片,以增强视觉效果。如果有的话,可以在CSS中通过`background-image`属性引用这些图片。 总的来说,这个实例展示了`jQuery`...