0%

汇编学习笔记

汇编学习

如何在Mac上运行汇编程序

安装nasm

在命令行中安装nasm

1
brew install nasm

Mac中虽自带nasm,但版本太老,需重新安装。

新建asm文件

下面名为 HelloWorld.asm 文件运行可输出hello world!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
msg: db "hello world!", 0x0a
len: equ $-msg

SECTION .text
global _main

kernel:
syscall
ret

_main:
mov rax,0x2000004
mov rdi,1
mov rsi,msg
mov rdx,len
call kernel

mov rax,0x2000001
mov rdi,0
call kernel

在命令行中运行

  • 根据HelloWorld.asm生成相应的输出文件HelloWorld.o

-o outfile write output to an outfile

-f format select an output format(指定编译环境)

1
nasm -f macho64 -o HelloWorld.o HelloWorld.asm
  • 生成输出文件HelloWorld(格式:Unix可执行文件)
1
ld HelloWorld.o -o HelloWorld -macosx_version_min 10.13 -lSystem -no_pie
  • 运行HelloWorld文件
1
./HelloWorld

运行成功

此时可看到文件夹中有三种文件(.asm、.o、Unix可执行文件)