as86,ld86 简介
[复制链接]
1.as86 和 ld86 是由 Bruce Evans 编写的 Intel 8086 汇编编译程序和连接程序。
2.它完全是一个 8086 的汇编编译器,但却可以为 386 处理器编制 32 位的代码。
3.Linux 使用它仅仅是为了创建 16 位的启动扇区(bootsector) 代码和 setup 二进制执行代码。
4.该编译器的语法与 GNU 的汇编编译器的语法是不兼容的,但近似于 Intel 的汇编语言语法(如操作数的次序相反等)
5.Bruce Evans 是 minix 操作系统 32 位版本的主要编制者,他与 Linux 的创始人 Linus Torvalds 是很好的朋友。minix 操作系统的不足之处也是两个好朋友互相探讨得出的结果,这激发了 Linus 在 Intel 386 体系结构上开发一个全新概念的操作系统,因此 Linux 操作系统的诞生与 Bruce Evans 也有着密切的关系。
6.as的使用方法和选项如下:as [-03agjuw] [-b [bin]] [-lm [list]] [-n name] [-o obj] [-s sym] src
7.默认设置 (除了以下默认值以外,其它选项默认为关闭或无;若没有明确说明 a 标志,则不会有输出):
8.-03 32 位输出
list 在标准输出上显示
name 源文件的基本名称(也即不包括“.“后的扩展名)
9.选项含义:
10.-0 从 16 比特代码段开始;
-3 从 32 比特代码段开始;
-a 开启与 as、ld 的部分兼容性选项;
-b 产生二进制文件,后面可以跟文件名;
-g 在目标文件中仅存入全局符号;
-j 使所有跳转语句均为长跳转;
-l 产生列表文件,后面可以跟随列表文件名;
-m 在列表中扩展宏定义
-n 后面跟随模块名称(取代源文件名称放入目标文件中)
-o 产生目标文件,后跟目标文件名
-s 产生符号文件,后跟符号文件名
-u 将未定义符号作为输入的未指定段的符号
-w 不显示警告信息
11.ld 连接器的使用语法和选项:
对于生成 Minix a.out 格式的版本:ld [-03Mims[-]] [-T textaddr] [-llib_extension] [-o outfile] infile...
对于生成 GNU-Minix 的 a.out 格式的版本:ld [-03Mimrs[-]] [-T textaddr] [-llib_extension] [-o outfile] infile...
12.默认设置(除了以下默认值以外,其它选项默认为关闭或无):
13.-03 32 位输出;
outfile a.out 格式输出;
14.-0 产生具有 16 比特魔数的头结构,并且对-lx 选项使用 i86 子目录
-3 产生具有 32 比特魔数的头结构,并且对-lx 选项使用 i386 子目录
-M 在标准输出设备上显示已链接的符号
-T 后面跟随文本基地址 (使用适合于 strtoul 的格式)
-i 分离的指令与数据段(I&D)输出
-lx 将库/local/lib/subdir/libx.a 加入链接的文件列表中
-m 在标准输出设备上显示已链接的模块
-o 指定输出文件名,后跟输出文件名
-r 产生适合于进一步重定位的输出
-s 在目标文件中删除所有符号
|
|