Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/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 编译Sparc汇编语言_Assembly_Sparc - Fatal编程技术网

Assembly 编译Sparc汇编语言

Assembly 编译Sparc汇编语言,assembly,sparc,Assembly,Sparc,我目前在一个叫做“计算机体系结构和组织”的班上。我的教授用Sparc汇编语言编写了一个微型操作系统。我的教授现在希望我们编写一个递归函数,并将结果打印到控制台 我的问题是,如何编译和测试我的程序?我真的不明白。上学期我参加了一门叫做“汇编语言”的课程。在那门课上,我从未学习过“Sparc”体系结构。我总是使用汇编语言和内联C语言,并使用Visual Basic编译程序。现在我迷路了。是SPARC汇编语言的一个很好的教程,包括使用gcc编译和运行代码。另请参见。在vi(1)中编写汇编程序代码,然后

我目前在一个叫做“计算机体系结构和组织”的班上。我的教授用Sparc汇编语言编写了一个微型操作系统。我的教授现在希望我们编写一个递归函数,并将结果打印到控制台


我的问题是,如何编译和测试我的程序?我真的不明白。上学期我参加了一门叫做“汇编语言”的课程。在那门课上,我从未学习过“Sparc”体系结构。我总是使用汇编语言和内联C语言,并使用Visual Basic编译程序。现在我迷路了。

是SPARC汇编语言的一个很好的教程,包括使用gcc编译和运行代码。另请参见。

在vi(1)中编写汇编程序代码,然后使用汇编程序as(1)将其汇编成机器代码对象文件.o。然后使用链接编辑器ld(1)将相关的可执行文件和链接格式(ELF)信息添加到.o文件中,解析任何外部符号(函数调用到共享对象库),从而将其转换为运行时链接器ld.so.1可以执行的可执行文件

as hello.s -o hello.o && ld hello.o -o hello && ./hello
你好,世界

还可以使用C或C++编译器的前端将编写的汇编代码链接到可执行文件:

cc hello.o -o hello && ./hello

gcc hello.o -o hello && ./hello
上面的调用将在幕后为您调用链接编辑器ld(1),并提供正确的选项

假设您的汇编代码对libc进行函数调用。然后你会有一个额外的步骤:

; generates hello.o

as hello.s && ld hello.o -lc -o hello && ./hello

-lc
选项告诉链接器您要链接到libc。“lib”由链接器自动预先设置。

gcc hello.S-o hello
来组装和链接libc以及平台所需的任何其他内容。如果您编写了
\u start
而不是
main
,则可以
gcc hello.S-nostlib-static-o hello