[转]Ubuntu安装NASM和简单的使用教程
原文:https://www.cnblogs.com/raina/p/11527327.html
——————————————————————————————————
Ubuntu安装NASM和简单的使用教程
1. 安装
sudo apt-get install nasm
这样nasm就安装好了,终端输入命令:
nasm -version
输出版本信息就说明安装成功
2. 使用
创建"hello.asm"文件:
touch hello.asm
gedit hello.asm
在文件中输入下面的汇编代码
section .data
hello: db 'Hello world!',10 ; 'Hello world!' plus a linefeed character
helloLen: equ $-hello ; Length of the 'Hello world!' string
; (I'll explain soon)
section .text
global _start
_start:
mov eax,4 ; The system call for write (sys_write)
mov ebx,1 ; File descriptor 1 - standard output
mov ecx,hello ; Put the offset of hello in ecx
mov edx,helloLen ; helloLen is a constant, so we don't need to say
; mov edx,[helloLen] to get it's actual value
int 80h ; Call the kernel
mov eax,1 ; The system call for exit (sys_exit)
mov ebx,0 ; Exit with return code of 0 (no error)
int 80h
保存后退出。
编译
nasm -f elf64 hello.asm
如果是32位系统就把elf64
改为elf32
链接
ld -s -o hello hello.o
运行
./hello
终端输出“Hello,world!”就没问题了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2019-10-26 Golang : Forwarding a local port to a remote server example
2019-10-26 资源
2019-10-26 【转】 ssh 秘钥登录
2018-10-26 while(std::cin>>val)怎么结束的思考
2017-10-26 13种编程语言名称的来历
2017-10-26 Python IDLE 安装与使用教程(调试、下载)
2016-10-26 bootstrap登录模板