汇编编程基础与二进制知识详解
1. 缺少 _start 标签的影响
在汇编编程中, _start 标签至关重要。若在源文件中省略该标签,会出现问题。我们可以通过实验来了解其影响。
操作步骤如下:
1. 用 Vim 打开 prog3a.s 文件。
2. 删除 _start: 这一行,即删除该标签。
3. 退出 Vim,然后汇编程序: as --o prog3a.o prog3a.s 。
4. 链接程序: ld --o prog3a prog3a.o 。
此时会产生如下错误信息:
ld: warning: cannot find entry symbol _start; defaulting to 00008054
这表明链接器因找不到程序起始点的指针,默认程序起始点在内存地址 00008054 处(该地址可能因树莓派而异)。这虽有一定保障作用,但并非万无一失。所以,在文件中应始终使用 _start: 来定义执行起始点。
2. 文件链接操作
ld 代表 “link dynamic”,链接命令可将多个文件组合成一个可执行程序。在这种情况下,所有文件中只能定义一个 _start: 标签,因为程序只能有一个起始点。下面通过示例展示具体操作:
1. 在 Vim 中创建新文件
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



