NASM中的ALIGN ALIGNB SECTALIGN
ALIGN与ALIGNB
NASM中的ALIGN与ALIGNB是用来字节对齐的,它们接收2个参数,第一个参数是必须的,表示对齐的字节数(必须是2的幂),第二个参数是可选的,表示为了对齐而进行填充的内容,如果不提供,默认用NOP填充(等价于RESB 1)。
align 4 ; align on 4-byte boundary
align 16 ; align on 16-byte boundary
align 8,db 0 ; pad with 0s rather than NOPs
align 4,resb 1 ; align to 4 in the BSS
alignb 4 ; equivalent to previous line
ALIGN和ALIGNB可以在struct中使用:
struc mytype2
mt_byte:
resb 1
alignb 2
mt_word:
resw 1
alignb 4
mt_long:
resd 1
mt_str:
resb 32
endstruc
需要注意的是,ALIGN和ALIGNB对齐的起始点是相对于当前SECTION的,而不是整个可执行文件的地址空间。
SECTALIGN
SECTALIGN是用来对SECTION进行字节对齐的。
在进行SECTION定义的时候,可以使用align=属性来进行字节对齐,而SECTALIGN macro不同,它可以在任何时候进行字节的对齐。
一旦使用了SECTALGIN,对齐字节数只能增加,不能减少。比如SECTALIGN 16之后,就无法SECTALIGN 8。
ALGIN和ALIGNB底层默认都是调用的SECTALIGN,如果想关闭这个默认实现,可以调用SECTALIGN OFF,如果想打开调用SECTALIGN ON。调用SECTALIGN ON/OFF只是关闭ALIGN和ALIGNB的默认实现,不影响SECTALIGN的使用。
NASM中的ALIGN ALIGNB SECTALIGN的更多相关文章
- HTML中的align和valign这两个属性
转自:https://www.douban.com/note/325833958/ align和valign属性均是规定表格相对于周围元素的对齐方式,区别就在于: 1.align属性趋向于左右对齐,其 ...
- nasm中的表达式
nasm表达式支持2个特殊的记号 $和$$;前者标识其所在源码行的开始处地址,所以你可以这样写死循环: jmp $ 而后者标识当前段开始处的地址,你可以通过: $-$$ 找出当前代码在段内的偏移. n ...
- 前端知识点回顾之重点篇——CSS中vertical align属性
来源:https://www.cnblogs.com/shuiyi/p/5597187.html 行框的概念 红色(line-height)为行框的顶部和底部,绿色(font-size)为字体的高度, ...
- jquery 中一些 特殊方法 的特殊使用 一览表
cnblogs的页面, 一种是管理页面, 是随笔的列表 a full list of essays. 另一种是 首页. 要搜索文档的话, 就使用 "首页"的那种方式. 一个jque ...
- MeshLab中进行点云配准
MeshLab是一个开源.可移植和可扩展的三维几何处理系统,主要用于交互处理和非结构化编辑三维三角形网格.它支持多种文件格式: import:PLY, STL, OFF, OBJ, 3DS, COLL ...
- NASM编译器的$和$$标记
NASM中的times相当于MASM中的dup起到重复定义的作用. $表示当前行的偏移地址,$$表示当前段的起始偏移地址, ;------------------------------------- ...
- CSS中盒子模型和position(一)
今天遇到几个css中的重要的知识点,记得这些都是以前看过的:margin.padding.border和position.可是用起来还是有很多的问题,以前自己看过去总是懒得记录,等到用起来了都不知道自 ...
- start.s中的.balignl 16,0xdeadbeef
转载:http://blog.csdn.net/l_thread/article/details/6020036 开始看start.s中的代码,又一句.balignl 16,0xdeadbeef,不知 ...
- Html中如何让超链接a、图片img居中
一.问题来源 修改博客页面时,突然想到 二.解决办法 2.1原来办法 在img和a中加入align="center",发现不行 2.2百度答案 <div align=&quo ...
- html中object标签详解
定义和用法 object标签定义一个嵌入的对象.请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. &l ...
随机推荐
- Java面试题【3】
20)什么是线程安全? 含义:当多个线程访问某个方法时,不管你通过怎样的调用方式或者说这些线程如何交替的执行,我们在主程序中不需要去做任何的同步,这个类的结果行为都是我们设想的正确行为,那么我们就可以 ...
- Python---flask框架实现免密登录功能
思路总结: html代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta c ...
- Apache Thrift 白皮书
介绍: 轻量级.跨语言. 简洁的抽象和实现:数据传输.序列化.应用逻辑处理. IDL及代码生成系统. 基本架构图如下: 28种语言支持:28 programming languages. 支持客户端及 ...
- 5 更换npm为国内镜像
更改npm为国内镜像 在终端执行. npm set registry http://registry.npmmirror.com 首先, 打开"我的电脑". 找到"c盘中 ...
- Regex中Replace方法的简单实用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- centos运行django,遇到sqlite报错
在centos上运行django,报错: django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required ...
- 《深入理解Java虚拟机》读书笔记: 虚拟机类加载的时机和过程
虚拟机类加载的时机和过程 一.类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading).验证(Verification).准备(Preparation ...
- Redis Stack功能介绍及redis-om-dotnet使用示例
为了简化开发人员对较新的 Redis 模块及其提供的功能的体验,同时简化支持其功能的文档和客户端.以帮助开发人员从开始使用 Redis 的那一刻起,就能充分提高工作效率.Redis Stack诞生了. ...
- How to install Django-Install Python Django | Django 安装指南【官方版】
How to install Django¶ This document will get you up and running with Django. Install Python--Linux ...
- mysql 简单进阶 ———— 多列索引[一]
前文 整理一下mysql 的一些简单进阶技巧,来源于高性能mysql,但不是根据书的序列来的. 正文 库地址: https://dev.mysql.com/doc/index-other.html 有 ...