x86汇编伪指令align和p2align

2024-05-07 02:04

本文主要是介绍x86汇编伪指令align和p2align,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.align

表达式

align bound

表达式说明 

功能:地址对齐的伪指令,用来指定符号的对齐方式。.

作用范围:只限于紧跟它的那条指令或者数据,而接下来的指令或者数据的地址由上一条指令的地址和其长度决定。

2. p2align

表达式如下:

p2align[wl] abs-exprabs-exprabs-expr

表达式说明:

表达式功能:将位置计数器(理解是针对汇编器而言的)填充到特定的存储边界。
第一个表达式(必须是绝对的):是位置计数器在前进后必须具有的低阶0位的数量。

  • 例如“. p2align 3 ”使位置计数器前进,直到它是8的倍数。如果位置计数器已经是8的倍数,则不需要改变。

第二个表达式:给出要存储在填充字节中的填充值。

  • 它(和逗号)可以省略。如果省略,填充字节通常为零。
  • 但是,在某些系统上,如果该部分被标记为包含代码并且省略了填充值,则该空间将由空操作指令填充。

第三个表达式:也是可选的,如果存在,表示该对齐指令应该跳过的最大字节数。

  • 如果进行对齐需要跳过比指定的最大值更多的字节,则根本不进行对齐。
  • 只需在所需的对齐方式后使用两个逗号,就可以完全省略填充值(第二个参数);
  • 如果您希望在适当的时候用空操作指令填充对齐,这将非常有用。

 

这篇关于x86汇编伪指令align和p2align的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966019

相关文章

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

汇编:嵌入式软件架构学习资源

成为嵌入式软件架构设计师需要掌握多方面的知识,包括嵌入式系统、实时操作系统、硬件接口、软件设计模式等。 以下是一些推荐的博客和网站,可以帮助你深入学习嵌入式软件架构设计: ### 1. **Embedded.com**    - **网址**: [Embedded.com](https://www.embedded.com/)    - **简介**: 这是一个专注于嵌入式系统设计的专业网

GDB 查看汇编

查看汇编 x disassemble

SylixOS x86平台C++符号表

1.C++跨平台问题说明     在x86平台下编译C++工程过程后,运行编译好的C++共享库时出现符号表__atomic_fetch_sub_4找不到的问题,如图 1.1所示。

C语言-程序环境 #预处理 #编译 #汇编 #链接 #执行环境

文章目录 前言 一、程序的环境翻译和执行环境 二、翻译环境 (一)、整体把握 (一)、编译 1、预处理(预编译) 2、编译 a、词法分析 b、语法分析 c、语义分析 d、符号汇总 3、汇编 (二)、链接 三、运行环境 总结​​​​​​​ 前言 路漫漫其修远兮,吾将上下而求索; PS:本文参考了《程序员的自我修养》,致敬大佬们! 一、程序的

Linux 技巧汇编

10个重要的Linux ps命令实战 显示所有当前进程 根据用户过滤进程 通过cpu和内存使用来过滤进程 通过进程名和PID过滤 根据线程来过滤进程 树形显示进程 显示安全信息 格式化输出root用户(真实的或有效的UID)创建的进程 使用PS实时监控进程状态 https://linux.cn/article-4743-1.html Python 云服务器应用 | Http

正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编

文章目录 一、裸机开发(21个)二、嵌入式Linux驱动例程三、汇编3.1 处理器内部数据传输指令3.2 存储器访问指令3.3 压栈和出栈指令3.4 跳转指令3.5 算术运算指令3.6 逻辑运算指令 一、裸机开发(21个) 二、嵌入式Linux驱动例程 三、汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一

ARM 伪指令 (26)

LDR 指令: ldr 既是一条伪指令 ,也是一条真正的arm 指令 举例: ldr  r1 , =val 将val的 地址 给到 r1 ldr  r1 , val 将 val 地址的内容给到 r1 . 作用: ldr pc, =32位地址。 这样就可以 实现长跳转。