通过C从Ruby中下拉汇编?

通过C从Ruby中下拉汇编?,ruby,ruby-c-extension,Ruby,Ruby C Extension,由于Ruby允许您在性能至关重要的任何位置下放到C中,而普通Ruby无法完成任务,并且由于C允许您在相同的情况下下下放到汇编中,我一直在想,是否有可能将汇编语言嵌入到Ruby代码中,方法是先下拉到C,然后从C代码中下拉到汇编 我一直希望这是可能的,但直到现在才发现有任何东西可以证实或否认这一点。由于对Qt(以及C++)的研究,我偶然发现了Ruby中的一条关于Qt的语句 您不能下拉到程序集 这是否意味着您不能直接进入汇编,或者根本不能通过C来完成?如果你正在用C编写Ruby的扩展呢:我可以假设

由于Ruby允许您在性能至关重要的任何位置下放到C中,而普通Ruby无法完成任务,并且由于C允许您在相同的情况下下下放到汇编中,我一直在想,是否有可能将汇编语言嵌入到Ruby代码中,方法是先下拉到C,然后从C代码中下拉到汇编

我一直希望这是可能的,但直到现在才发现有任何东西可以证实或否认这一点。由于对Qt(以及C++)的研究,我偶然发现了Ruby中的一条关于Qt的语句

  • 您不能下拉到程序集

这是否意味着您不能直接进入汇编,或者根本不能通过C来完成?如果你正在用C编写Ruby的扩展呢:我可以假设,因为这只是C(没有嵌入Ruby),你仍然可以在那里使用汇编,Ruby仍然可以使用C扩展,其中包含汇编吗?

考虑到上下文,很明显,这意味着在Ruby中,你不能放弃一些疯狂的东西,比如:

def func1(arr)
  arr.map { |v| func2(v) }
end

def func2(val)
  asm do
    mov ax, 1234h
    mov bx, ax
  end
end
Ruby无法阻止您在链接的C对象中使用类似的东西


但是,作为一个例子,如果有人制作了它,它将是一个非常酷的图书馆

哇。这是对类似事情的完美描述。