linux

位置:IT落伍者 >> linux >> 浏览文章

一起学习在linux下使用汇编语言(3)


发布日期:2023年10月17日
 
一起学习在linux下使用汇编语言(3)

作者luster

摘要:Netwide Assebler Project计划提供了一个非常好用的 i汇编器这个汇编器是用C写的可以支持很多种对象文件格式

今天我们接着看看还有其他什么可以选择的汇编编译器

NASM

Netwide Assebler Project计划提供了一个非常好用的 i汇编器这个汇编器是用C写的可以支持很多种对象文件格式

我们可以在下面的网址获得nasm最新的版本

语法还是使用的Intel方式的集成了很好的对宏指令的支持支持的object文件格式有binaoutcoffelfasobj(DOS)winrdf等NASM可以用作免费的

LCC编译器的backend

除非你使用bit的编译器BCC否则你可以很好的使用NASM而不必要去使用其他的AS或者MASM因为NASM在几乎所有的平台上都可以很好的运行另外它还有一个反汇编程序名字叫NDISASM

NASM是用的是一个人工编写语法分析器比GAS速度要快如果你喜欢用Intel风格的语法而不习惯GAS的语法那么NASM是你最好的选择了

AS

AS是一个支持x的汇编编译器同时支持bit和bit也有集成的对宏指令的支持在寻址表示方面有点区别外其他语法都是何Intel的语法一样的最新的版本可以在下面的网址获得

~mayday/

下面是个例子是一个GNU Makefile里面使用BCC来讲s asm文件编译成aout o 的目标文件和 l 的listing文件

%o %l: %s bcc G c Ad Al –A$*l o $*o $<

如果你不需要listing文件,就把“%.l,-A –l”和”-A$* .l”删除。tW.WiNgWIT.CoM如果你想编译成其他的东西,而不是a.out文件,那么可以修改BCC的参数。

其他汇编器

还有很多的可以使用的汇编器。下面列举几个,供大家参考:

Free Pascal

Free Pascal 集成了一个32-bit的汇编器。

Win32Forth assembler

Win32Forth是一个免费的32-bit的ASN FORTH系统,可以在Win32s,Win95,WinNT下正常使用。它包括了一个32-bit的汇编器,这个编译器嵌入到了FORTH语言当中了。可以在下面的站点下载:

ftp:///pub/Forth/Compilers/native/windows/Win32For/.

SHASM

SHASM是用GNU Bash Version 2编写的一个汇编器,可以在其他unix-style的“shell”命令解释器下运行。可以在下面的网址下载最新版本:

ftp://linux01.gwdg.de/pub/cLIeNUX/interim/shasm.TGZ

TDASM

TDASM是Table Driven Assembler的,可以对各种版本的汇编语言做交叉编译。可以到下面的网站下载:

~niki/tdasm/

Terse

Terse是一个编程工具,它为x86系列提供了最紧凑的汇编语法编译。详细情况参考:

HLA

HLA 是a High Level Assembly language的缩写。它的变量声明、过程声明、过程调用等都使用高级语言类似的语法)例如使用与Pascal,C/C++类似的语法)。HLA是免费的,不过只能在Win32下面使用。访问下面的网站可以获得更多的资料:

TALC

TALC 是另外一个基于MASM/Win32地免费的编译器。TAL是Typed Assembly Language的缩写。可以访问下面的网站:

待续。。。

.cn

上一篇:Linux下IPV4和IPV6的互操作性研究

下一篇:如何在 Linux 下通过 WEB 认证方式上网