Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何使用Keil软件编写的汇编代码成为可执行文件?_Assembly - Fatal编程技术网

Assembly 如何使用Keil软件编写的汇编代码成为可执行文件?

Assembly 如何使用Keil软件编写的汇编代码成为可执行文件?,assembly,Assembly,我可以为x86处理器编写汇编代码。但我需要知道如何将它转换成可执行文件。 < P>我认为Keil是一个C++编译器,但我想你是想用IDE接口来编写ASM代码。您需要的是x86汇编程序 如果你希望继续使用C++编译器,注意C++支持了.yasm关键字,所以你所做的只是: //all your includes here int main() { asm { //your assembly code here } return 0; } 注意这是

我可以为x86处理器编写汇编代码。但我需要知道如何将它转换成可执行文件。

< P>我认为Keil是一个C++编译器,但我想你是想用IDE接口来编写ASM代码。您需要的是x86汇编程序

<>如果你希望继续使用C++编译器,注意C++支持了.yasm关键字,所以你所做的只是:

//all your includes here

int main()
{
    asm
    {
        //your assembly code here
    }

    return 0;
}

注意这是一个冒险的业务,C++编译器不会给你在ASM块内的任何编码错误给出错误,相反,它很可能编译得很好,当你运行它时就崩溃了,这使得调试非常糟糕。但是,优点是可以组合像C++这样的中间级语言的特权,甚至可以使用诸如ASM之类的低级语言的速度,即速度和大小,尽管在C++编译器中运行代码时,这是非常微不足道的,尤其是因为编译器不会优化ASM代码,但我将把对ASM编码的批评留到下次讨论。更多关于C++和ASM.<


<> P>根据你所编码的和你的目标OS,你可以从许多汇编代码汇编中选择一个汇编程序汇编汇编代码,而编译器编译一个更高级的语言,比如C++,到汇编代码中,然后进入一个可执行的,NASM,TASM,GASASM,Masm,GASM只是谷歌的名字。我相信这是最受欢迎的。请注意,它们似乎都与编码风格不兼容,因此您必须适应您选择的特定编译器。这是我不喜欢ASM的原因之一,不过我主要编写高级汇编。

上次查看时,Keil制作了C51 8051,而不是i386 80386+编译器

如果这是真的,并且你有一个C51编译器:没有机会。虽然8051是intel,并且与x86最早的系列8080(8086,更重要的是与i386以及后来的x86_64)有一定的横向关联,但变化太大,这可能是徒劳的


Keil C51编译器为8051 8位,带有16位扩展名,例如Hitachi 80515,您可能正在寻找i386或x86_64 32/64位的编译器

您看过Keil软件的手册了吗?