Scorch Asked: 2018-08-13 02:43:20 +0800 CST2018-08-13 02:43:20 +0800 CST 2018-08-13 02:43:20 +0800 CST 如何在 Ubuntu 18.04 中编译和运行程序集? 772 所以最近想学汇编,所以学了一点。我把它放入 nano 并保存为 playground.asm。现在我想知道,如何编译和运行它?我已经到处找了,还是找不到。我真的很好奇,如果你甚至不会使用一门语言,那么学习它是没有意义的。 compiling 18.04 assembler 2 个回答 Voted Best Answer karel 2018-08-13T02:52:56+08:002018-08-13T02:52:56+08:00 在所有当前支持的 Ubuntu 版本中,打开终端并输入: sudo apt install as31 nasm as31 : Intel 8031/8051 汇编器 这是一个快速、简单、易于使用的 Intel 8031/8051 汇编器。 nasm : 通用 x86 汇编器 Netwide Assembler。NASM 目前将输出平面形式的二进制文件、a.out、COFF 和 ELF Unix 目标文件,以及 Microsoft 16 位 DOS 和 Win32 目标文件。 这是打印 Hello world 的汇编语言程序的代码。 section .text global _start _start: mov edx,len mov ecx,msg mov ebx,1 mov eax,4 int 0x80 mov eax,1 int 0x80 section .data msg db 'Hello world',0xa len equ $ - msg 如果您在 Ubuntu 18.04 中使用 NASM,编译和运行名为 hello.asm 的 .asm 文件的命令是: nasm -f elf64 hello.asm # assemble the program ld -s -o hello hello.o # link the object file nasm produced into an executable file ./hello # hello is an executable file thiagola92 2019-11-19T16:54:39+08:002019-11-19T16:54:39+08:00 Ubuntu 自带(便携式 GNU 汇编器) as file.s -o file.out ld file.out -e main -o file ./file -o: 告诉将输出发送到哪里 -e: 告诉 ld 开始符号
在所有当前支持的 Ubuntu 版本中,打开终端并输入:
as31 : Intel 8031/8051 汇编器
这是一个快速、简单、易于使用的 Intel 8031/8051 汇编器。
nasm : 通用 x86 汇编器
Netwide Assembler。NASM 目前将输出平面形式的二进制文件、a.out、COFF 和 ELF Unix 目标文件,以及 Microsoft 16 位 DOS 和 Win32 目标文件。
这是打印 Hello world 的汇编语言程序的代码。
如果您在 Ubuntu 18.04 中使用 NASM,编译和运行名为 hello.asm 的 .asm 文件的命令是:
Ubuntu 自带(便携式 GNU 汇编器)
-o
: 告诉将输出发送到哪里-e
: 告诉 ld 开始符号