汇编.section和.text以及入口地址解释

2023-05-16


.section .data  

汇编程序中以.开头的名称并不是指令的助记符,不会被翻译成机器指令,而是给汇编器一些特殊指示,称为汇编指示(Assembler Directive)或伪操作(Pseudo-operation),由于它不是真正的指令所以加个“伪”字。.section指示把代码划分成若干个段(Section),程序被操作系统加载执行时,每个段被加载到不同的地址,操作系统对不同的页面设置不同的读、写、执行权限。.data段保存程序的数据,是可读可写的,相当于C程序的全局变量。本程序中没有定义数据,所以.data段是空的。


 .section .text  

.text段保存代码,是只读和可执行的,后面那些指令都属于.text段。


 .globl _start  

_start是一个符号(Symbol),符号在汇编程序中代表一个地址,可以用在指令中,汇编程序经过汇编器的处理之后,所有的符号都被替换成它所代表的地址值。在C语言中我们通过变量名访问一个变量,其实就是读写某个地址的内存单元,我们通过函数名调用一个函数,其实就是跳转到该函数第一条指令所在的地址,所以变量名和函数名都是符号,本质上是代表内存地址的。

.globl指示告诉汇编器,_start这个符号要被链接器用到,所以要在目标文件的符号表中标记它是一个全局符号。_start就像C程序的main函数一样特殊,是整个程序的入口,链接器在链接时会查找目标文件中的_start符号代表的地址,把它设置为整个程序的入口地址,所以每个汇编程序都要提供一个_start符号并且用.globl声明。如果一个符号没有用.globl声明,就表示这个符号不会被链接器用到。


_start:  

这里定义了_start符号,汇编器在翻译汇编程序时会计算每个数据对象和每条指令的地址,当看到这样一个符号定义时,就把它后面一条指令的地址作为这个符号所代表的地址。而_start这个符号又比较特殊,它所代表的地址是整个程序的入口地址,所以下一条指令movl $1, %eax就成了程序中第一条被执行的指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

汇编.section和.text以及入口地址解释 的相关文章

  • 在 R 中将文本框保存为 pdf

    我正在尝试在 R 中创建项目符号类型列表 并希望将其保存为 pdf 格式 这成功地在窗口上打印了项目符号列表 a paste0 Starting portfolio value prettyNum 1000000 big mark scie
  • TCPDF 可以原生将文本输出为图像吗

    TCPDF 在生成 PDF 时看起来确实很强大 由于很多事情都可以直接在 TCPDF 中完成 我想知道是否可以直接在 TCPDF 中将文本转换为图像 或者以这样的方式保存PDF 使得某些文本部分无法被机器轻松读取 目标是实现一种垃圾邮件防护
  • 在 osx 上批量将 .py(文本文件)转换为 .pdf

    我教授 Python 课程 并且有大量提交用于考试的 py 文件 我想将所有这些内容转换为 pdf 以便我可以在 ipad 上的 IAnnotate 中打开它们 对其进行标记并将其返回给学生 我怎样才能在批处理模式下进行这样的转换 在小牛队
  • R中的文本到Pdf

    我有一个文本文件 比如说维度 txt 其中包含某些数据 我想在 R 中编写一个函数 将该文本文件转换为 pdf 文件 在我来到这里之前我用谷歌搜索了很多 有很多地方人们询问如何将 pdf 文件转换为文本 而不是反之亦然 这是我的代码 Fun
  • 过滤出现在两个标记之间的文本

    Part 1 创建仅输出由两个预定义标记包围的文本的文本过滤器的最简单方法是什么 我不介意使用任何标准工具 sed awk python 例如 我希望只显示由 标记开始 和 标记结束 包围的文本 input Text 1 Mark Begi
  • XML 与逗号分隔的文本文件

    好吧 我读了几本关于 XML 的书 并编写了程序来吐出它 等等 但问题是这样的 逗号分隔文件和 XML 文件都是 人类可读的 但总的来说 逗号分隔文件比 XML 文件更容易被我看到 标签通常占用与数据一样多的空间 甚至更多 这似乎掩盖了我正
  • 验证用户输入

    我的用户将在这样的地方输入一些字节 Yellow arrow points to his input Orange arrow points to my button 大约半个小时后 我开始意识到这比我想象的要乏味得多 问题 我是否需要编写
  • 如何绘制独立于 DPI 的 GDI + 文本

    我正在使用 GDI 绘制文本 我最近注意到 当 DPI 更改时 该文本会自动缩放 有没有办法让GDI 文本绘制独立于DPI 例如 我想绘制最大 20 像素的文本 无论 DPI 是多少 是否可以 这个怎么做 下面是示例代码 我想以恒定的大小绘
  • Android 追加文本文件

    我试图将对话框选择器中的唤醒时间和睡眠时间记录到这样的文本文件中 但是对方法 commitToFile2 的调用不会附加文本文件 savedData txt 我知道这段代码非常非常肮脏 我是 Java 新手 所以任何其他建议将不胜感激 pa
  • 在WPF中有效地在图像上显示文本?

    如何在图像上显示文本 使其始终可见 因为图像颜色是混合的且不可预测 我考虑了两个选择 使文本边框为白色 而文本本身为黑色 使文字与图片相反地显示 第一个选项是首选 因为它看起来更坚固 嵌入文本很简单
  • 如何使用 Flutter 编写带有要点的段落?

    使用 HTML 我可以向段落添加项目符号 如下所示 ul li example li li example li li example li ul 如何在 Flutter 中编写要点形式 new Text 如果您不想下载另一个库 例如 fl
  • 有效地查找文本文件中的最后一行[重复]

    这个问题在这里已经有答案了 我需要从许多非常大 几百兆字节 的文本文件中提取最后一行来获取某些数据 目前 我正在使用 python 循环遍历所有行 直到文件为空 然后处理返回的最后一行 但我确信有一种更有效的方法来执行此操作 使用 pyth
  • tkinter 中从右到左的文本

    我使用的是 RTL 语言 并且我需要我的文本为 RTL 有办法做到吗 我怎样才能证明我的文字合理 例子 from tkinter import from tkinter constants import root Tk text Text
  • 将文件夹名称添加到输出 Pig Latin

    我在 HDFS 中有下一个目录结构 logs folder 2021 03 01 log1 log2 log3 2021 03 02 log1 log2 2021 03 03 log1 log2 日志由文本数据组成 数据中没有日期 因为它已
  • 可绘制资源中带有形状的文本

    我可以在可绘制资源中创建文本形状吗 我在谷歌上搜索了很多 但什么也没找到 这是我的绘图文件
  • Python:找到出现次数最多的单词?

    我试图让我的程序报告文本文件中出现最多的单词 例如 如果我输入 你好 我喜欢馅饼 因为它们非常好吃 程序应该打印出 最喜欢的馅饼 执行选项 3 时出现此错误 KeyError h Prompt the user to enter a blo
  • 如何在 C# 中旋转标签? [复制]

    这个问题在这里已经有答案了 我想显示一个旋转 90 度的标签 这样我就可以将它们中的一堆作为标题放在表格的顶部 是否有捷径可寻 您需要编写自己的控件或使用自定义控件 A 代码项目 http en wikipedia org wiki The
  • 管理MPAndroidChart的某些Situation PieChart中的文本

    我尝试在 MPAndroidChart 的 PieChart 中管理文本 但是当我的文本是困难的情况 如 True 2 False 3 Not 95 时 在这种情况下我的饼图布局非常糟糕 这是我的代码 fun setupPieChartVi
  • 将本地文本文件读取到 JavaScript 数组中[重复]

    这个问题在这里已经有答案了 我的 JavaScript 文件位于同一文件夹中 有一个文本文件 这两个文件都存储在我的本地计算机上 txt 文件每一行只有一个单词 如下所示 red green blue black 我想尽可能高效地读取每一行
  • Win32 DrawText 行高

    我正在调用 Win32DrawText函数将一些文本输出到设备上下文中 文本很长 可以很好地换行到第二行 问题是我需要稍微减少行之间的间距 我想减少行高 关于如何做到这一点有什么想法吗 我只想打电话DrawText两次 每行一次 但随后我必

随机推荐

  • 常用Windows快捷键大全

    0 简要 要将电脑玩的溜 xff0c 快捷键是必须要掌握的技能 xff0c 本文汇总了一些常用的快捷键 xff0c 相信加以练习 xff0c 一定能提高你的工作效率 笔者将常用快捷键分为四个系列 xff0c 如下所示 xff1a Win 系
  • Centos8安装MySql,完美解决

    本文使用yum安装mysql linux版本为 centos 8 参考 xff1a MySQL官网yum源 MySQL官网Linux yum安装Mysql CentOS 8 yum安装软件时 xff0c 提示无法从AppStream下载 c
  • aws亚马逊服务器Ubuntu18脚本一键重装系统为centos7

    这两天注册了aws xff0c 送了一年的最低配服务器嘛 但是可使用的系统就是有Ubuntu和Redhat 都试了试不太好用 今天就在网上看到了一键重装的脚本 就记录分享一下 先后执行下列两条命令就可以 xff1a apt get inst
  • 利用excel求特定条件下的最大/小值(maxif/minif)

    欢迎关注我的公众号 xff1a Smilecoc的杂货铺 在Excel中有sumif countif等函数可以实现求特定条件下数值的加总和计数 xff0c 那么如何在一个或多个条件下求出此时的最大值或者最小值呢 xff1f 其实sumif函
  • 时间序列(一):时间序列数据与时间序列预测模型

    时间序列系列文章 xff1a 时间序列 xff08 一 xff09 xff1a 时间序列数据与时间序列预测模型 时间序列 xff08 二 xff09 xff1a 时间序列平稳性检测 时间序列 xff08 三 xff09 xff1a ARIM
  • Windows下解压tar.gz压缩文件

    一 tar gz是什么文件 xff1f 以 tar gz为后缀的文件是一种压缩文件 xff0c 在Linux和macOS下常见 xff0c Linux和macOS都可以直接解压使用这种压缩文件 二 怎么解压tar gz 一些软件支持解压ta
  • Python安装模块(包/库)的方法

    这里写目录标题 通过pip安装正常在线安装pip命令补全更改下载镜像 离线包安装库的下载库的安装whl的安装 tar gz的安装源码安装 本地安装报错 xff08 依赖 xff09 Pycharm中安装手动安装终端命令行安装 Jupyter
  • win10 安装visual studio C++ build tools 【visualcppbuildtools_full.exe】提示安装包丢失 毁坏

    win10 安装visual studio C 43 43 build tools visualcppbuildtools full exe 提示安装包丢失 毁坏 1 问题 xff1a 安装visualcppbuildtools full
  • Excel:使用powerquery进行多表合并

    注 xff1a 本文原创为 xff1a https www cnblogs com fanyu2019 p 11175827 html 本文在原创的基础上添加修改了一点内容 目录 一 单工作簿多工作表合并二 多工作簿单工作表合并三 多工作簿
  • 利用Python调用outlook自动发送邮件

    欢迎关注我的公众号 xff0c 在这里有数据相关技术经验的优质原创文章 使用Python发送邮件有两种方式 xff0c 一种是使用smtp调用邮箱的smtp服务器 xff0c 另一种是直接调用程序直接发送邮件 而在outlook中我们一般是
  • 从 Tableau文件中获取数据方法汇总

    欢迎关注我的公众号 xff0c 在这里有数据相关技术经验的优质原创文章 在实际使用Tableau中经常会遇到需要从已有的tableau文件或仪表板中导出 提取 复制数据 xff0c 本篇文章整理了相关从Tableau文件中获取数据的方法 一
  • Excel中的数字转文本和文本转数字

    公式方法 xff1a 数字转文本 xff1a 61 TEXT A1 34 34 文本转数字 xff1a 直接乘以1即可 数字转文本 xff1a 61 A1 1 或者使用value函数 61 value 分列方法 xff1a 在数据工具 下选
  • vlookup查找匹配值超过255个字符显示#Value的解决办法

    错误原因 这一个错误的起源于在匹配字符串是否相等时出现 Value错误 xff0c 如下图黄色标注的部分 在Excel中提示的错误是 公式中所用的某个值是错误的数据类型 xff08 a value used in the formula i
  • HEXO部署博客内容到github报错

    今天在更新部署博客内容时出现了如下报错 xff1a 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 6
  • GO通过HTTP获取API的返回值(response)

    目录 net httpnet url net http span class token keyword import span span class token string 34 net http 34 span Go语言提供了HTTP
  • STM32F103学习笔记(2.3)——读GPIO 按键

    为了读取引脚的高低电平 xff0c 就需要将引脚配置成输入模式 xff0c 并读取IDR寄存器 目录 寄存器配置 端口配置低寄存器 GPIOx CRL x 61 A E 端口输入数据寄存器 GPIOx IDR x 61 A E 按键点灯 寄
  • Windows系统下,Ubuntu安装至移动硬盘(简单分析与详细安装教程)

    前期说明 博主因学业要求 xff0c 需要同时使用Windows系统与Linux系统 xff0c 故而考虑安装双系统 但个人电脑硬盘仅剩100G左右大小 xff0c 安装双系统可能导致硬盘容量不足 xff0c 恰好博主手中有个空闲的移动硬盘
  • QT开发学习4(远程调试 Qt 程序)

    2 5 1 rsync 方式 Qt 远程调试 在 Qt Creator 中默认情况下 xff0c 会使用 sftp 或 rsync 发送程序到板卡 由于正点原子 I MX6 U 出厂 Qt 文件系统 xff08 文件系统 V1 9 及之后的
  • 使用 python requests 模块发送 http 请求及接收响应

    内容概要 如何构建GET 与 POST request 请求消息对 request 的header query string message body 定制化http header参数 content type 的设置分析request r
  • 汇编.section和.text以及入口地址解释

    section data 汇编程序中以 开头的名称并不是指令的助记符 xff0c 不会被翻译成机器指令 xff0c 而是给汇编器一些特殊指示 xff0c 称为汇编指示 xff08 Assembler Directive xff09 或伪操作