- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
考虑一个仅包含简单 32 位 x86 汇编语句的文件:
call 0xc1066580
如果我用 nasm -f elf 组装这个文件,我会得到:
0: e8 7c 65 06 c1 call 0xc1066581
如果我使用 GCC 并指定 -Ttext=0 和 -nostdlib 我得到:
0: e8 7b 65 06 c1 call c1066580
-nostdlib 链接时不要使用标准系统启动文件或库。没有启动文件,只有您指定的库会传递给链接器,并且指定系统库链接的选项(例如 -static-libgcc 或 -shared-libgcc)将被忽略。
但是 -Ttext=0 到底是做什么的?我用它来指定 EIP 在加载/执行时启动的入口地址。我无法在手册页中找到 -Ttext,当我在线搜索时,我发现了这个:
“-Ttext 是“--section-start=text”的别名,其读作:--section-start=sectionname=org在输出文件中的给定绝对地址处找到一个部分通过组织。您可以根据需要多次使用此选项在命令行中找到多个部分。组织必须是单一的十六进制整数;为了与其他链接器兼容,您可以省略通常与十六进制值相关的前导 0x。注意:节名、节名之间不能有空格等号(“=”)和组织。”
但是,我在手册页中也找不到 --section 或sectionname,当我尝试用 --section-name 替换 -Ttext 时,我发现这是一个无法识别的参数(如果相关,则为 GCC 4.7.2)。
有人可以告诉我这个解释(-Ttext)是否准确以及我可以在手册中哪里找到它?如果不准确,-Ttext 到底有什么作用?
我的另一个问题是:如何为 nasm 指定一个与 -Ttext 类似的参数?或者换句话说,我需要做什么才能使 nasm 产生与 gcc 相同的输出?
我尝试在 64 位和 32 位系统上执行相同的汇编语句(使用 nasm 和 gcc),得到相同的结果。
最佳答案
运行ld --help
给出
-Ttext ADDRESS Set address of .text section
如果我们使用 gcc -Ttext=8 -nostdlib -o test test.s
.globl _start
_start:
movl test,%ebx
test:
并转储节标题(objdump -h test
):
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000007 0000000000000008 0000000000000008 00200008 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
..以及代码(objdump -d test
):
0000000000000008 <_start>:
8: 8b 1c 25 0f 00 00 00 mov 0xf,%ebx
我们可以看到 .text
节的起始地址为 8,大小为 7。也就是说,该节内所有对符号的引用都已按我们指定的起始地址 (8) 偏移,但不涉及填充(节大小并没有因为更改地址而增加)。
您应该能够通过使用 ORG directive 来使用 NASM 完成同样的事情:“NASM 的 ORG 完全按照指令所述执行:origin。它的唯一功能是指定一个偏移量,该偏移量将添加到该部分内的所有内部地址引用中”。
关于linux - 在 nasm 中指定起始地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14990641/
我在尝试生成具有“价格”轴和“量”轴的图表时遇到问题,类似于 example given 中的图表。在 Highstock 网站上。它可以很好地显示成交量轴,但不能显示价格。 在尝试确定问题的原因时,
起始 - HTML
在我的 HTML 项目中,我试图提及 标签。但是,VS Code 将其解释为实际的 标签,它会导致奇怪的事情发生。有人有办法解决这个问题吗?预先感谢您! 最佳答案 使用<代替 . 顺便说一下,使
起始 - HTML
在我的 HTML 项目中,我试图提及 标签。但是,VS Code 将其解释为实际的 标签,它会导致奇怪的事情发生。有人有办法解决这个问题吗?预先感谢您! 最佳答案 使用<代替 . 顺便说一下,使
The allocation function attempts to allocate the requested amount of storage. If it is successful, i
这是我的Program.cs: public static void Main(string[] args) { var host = new WebHostBuilder()
我希望我的应用程序独立于操作系统。因此,我的 config.properties 和日志文件存储在资源文件夹中,我通过相对路径获取这些资源。这是我的项目结构。 这是我的 AppConfig 类: pu
(前言:这是我在 Stack Overflow 上提出的第一个与音频相关的问题,因此我会尽力用最好的措辞来表达。欢迎编辑。) 我正在创建一个允许用户循环播放音乐的应用程序。目前,我们的原型(proto
我有一个 Pandas DataFrame,我想将其用作 Scrapy Start URL,函数 get_links 打开一个到 DataFrame 的 xlsx,其中有一个我想在其上运行蜘蛛的 Co
我有几个大的 DTD 文件。我用过 trang将它们转换为 XSD 文件,这样我就可以轻松地从 JAXB 和其他实用程序中使用它。但是,生成的 XSD 文件的所有声明元素都位于顶层。这意味着任何元素都
是否有任何工具可以将文件从给定的起始偏移量复制到给定的(结束)偏移量。我还想通过运行 md5sum 确认该工具已正确复制指定的字节。像这样的东西 1) Copy source file star
所以,我有一个程序,我可以使用 Path2D 对象将形状添加到 JPanel,然后我可以单击并拖动它们。我想要做的是能够找到药物后形状的最终 X 和 Y 坐标。坐标必须是左上角坐标。有什么想法吗? /
我是一名优秀的程序员,十分优秀!