所以最近我想学汇编,所以我学了一点。我把它放进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 起始符号