我知道汇编语言通常不是跨平台的。即使有了NASM这样的东西,对于不同的架构和平台仍然需要不同的代码,这些架构和平台具有不同的运行时和实现方式,比如中断。但是,如果有人想用汇编语言编程,因为他们喜欢汇编语言,有跨平台跨架构汇编语言的实现吗?
编辑:
如果不是传统意义上的组装,而是一种看起来很像程序集的低级编程语言呢?
发布于 2012-05-16 05:37:18
我认为唐纳德·克努斯的MMIX是你可能感兴趣的。Knuth用这种机器/汇编语言用他的计算机编程书的艺术编写程序。到目前为止,没有CPU直接支持它。只有模拟器。哦,有人做了一个FPGA可以运行它。但仅此而已。
发布于 2014-01-06 03:21:49
LLVM是一种低级语言(其用途是编译器后端),它看起来很像AT&T程序集,如果不是更糟的话。下面是一个例子:
define i32 @add_sub(i32 %x, i32 %y, i32 %z) {
entry:
%tmp = add i32 %x, %y
%tmp2 = sub i32 %tmp, %z
ret i32 %tmp2
}这与以下手写的x86程序集大致相同:
; Body
mov eax, edi
add eax, esi
sub eax, edx
retLLVM llc 3.3生成以下代码(为可读性缩进):
.file "add_sub.ll"
.text
.globl add_sub
.align 16, 0x90
.type add_sub,@function
add_sub: # @add_sub
.cfi_startproc
# BB#0: # %entry
lea EAX, DWORD PTR [RDI + RSI]
sub EAX, EDX
ret
.Ltmp0:
.size add_sub, .Ltmp0-add_sub
.cfi_endproc
.section ".note.GNU-stack","",@progbits有关守则如下:
lea EAX, DWORD PTR [RDI + RSI]
sub EAX, EDX
ret如您所见,LLVM有一个非常强大的优化器。这可能是你最接近的。
发布于 2012-05-16 04:08:01
不是的。C语言可能是最接近跨平台低级语言的语言。
https://stackoverflow.com/questions/10611826
复制相似问题