如何在 Ubuntu 18.04 中编译和运行程序集?

如何在 Ubuntu 18.04 中编译和运行程序集?

所以最近我想学汇编,所以我学了一点。我把它放进nano并保存为playground.asm。现在我想知道,我该如何编译和运行它?我已经到处搜索过了,还是找不到。我真的很好奇,如果你连用都不会,那学习一门语言也没意义。

答案1

在所有当前支持的 Ubuntu 版本中打开终端并输入:

sudo apt install as31 nasm  

AS31号:Intel 8031/8051 汇编器
这是一个快速、简单、易于使用的 Intel 8031/8051 汇编器。

国家音乐基金会:通用 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

答案2

Ubuntu 自带作为(可移植的 GNU 汇编程序)

as file.s -o file.out
ld file.out -e main -o file
./file

-o:告诉将输出发送到哪里
-e:告诉 ld 起始符号

相关内容