linux汇编helloworld怎么写?linux汇编语言入门教程

在 Linux 下使用汇编语言编写 “Hello, World!” 程序,通常使用 x86_64 架构(64位)或 x86 架构(32位),下面我将分别给出两种架构的代码示例,并说明如何编译和运行。


✅ 一、x86_64 架构(64位 Linux)

📄 汇编代码:hello64.asm

section .data
    msg db "Hello, World!", 10    ; 字符串 + 换行符
section .text
    global _start
_start:
    ; 系统调用:sys_write (1)
    mov rax, 1                    ; 系统调用号:sys_write
    mov rdi, 1                    ; 文件描述符:stdout
    lea rsi, [msg]                ; 缓冲区地址
    mov rdx, 13                   ; 写入字节数
    syscall                       ; 触发系统调用
    ; 系统调用:sys_exit (60)
    mov rax, 60                   ; 系统调用号:sys_exit
    xor rdi, rdi                  ; 退出码:0
    syscall                       ; 触发系统调用

linux汇编helloworld怎么写?linux汇编语言入门教程

汇编语言(基于Linux)
加载中
汇编语言(基于Linux)

🔧 编译与运行

# 使用 nasm 汇编
nasm -f elf64 hello64.asm -o hello64.o
# 链接生成可执行文件
ld hello64.o -o hello64
# 运行
./hello64

✅ 二、x86 架构(32位 Linux)

📄 汇编代码:hello32.asm

section .data
    msg db "Hello, World!", 10    ; 字符串 + 换行符
section .text
    global _start
_start:
    ; 系统调用:sys_write (4)
    mov eax, 4                    ; 系统调用号:sys_write
    mov ebx, 1                    ; 文件描述符:stdout
    mov ecx, msg                  ; 缓冲区地址
    mov edx, 13                   ; 写入字节数
    int 0x80                      ; 触发系统调用
    ; 系统调用:sys_exit (1)
    mov eax, 1                    ; 系统调用号:sys_exit
    xor ebx, ebx                  ; 退出码:0
    int 0x80                      ; 触发系统调用

linux汇编helloworld怎么写?linux汇编语言入门教程

🔧 编译与运行

# 使用 nasm 汇编
nasm -f elf32 hello32.asm -o hello32.o
# 链接生成可执行文件
ld hello32.o -o hello32
# 运行
./hello32

📌 说明

项目 x86_64 x86
系统调用接口 syscall int 0x80
系统调用号寄存器 rax eax
参数寄存器

linux汇编helloworld怎么写?linux汇编语言入门教程

rdi, rsi, rdx

ebx, ecx, edx
系统调用号sys_write=1, sys_exit=60sys_write=4, sys_exit=1

🛠 安装必要工具

如果你还没有安装 nasm 和 ld,可以使用以下命令安装:

# Debian/Ubuntu
sudo apt install nasm binutils
# CentOS/RHEL
sudo yum install nasm binutils

✅ 输出结果

无论使用哪种架构,运行后都会输出:

Hello, World!

如需进一步学习,可以探索:

  • 如何读取用户输入
  • 如何创建文件
  • 如何使用 C 库函数(如 printf)

欢迎继续提问!

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/483349.html

赞 (0)
上一篇 2026年7月11日 21:14
服务器主机进程很多怎么办?服务器进程多占用内存怎么解决
下一篇 2026年7月11日 21:16

相关推荐

  • 国外业务中台分发是什么?国外业务中台如何高效分发

    在全球化商业版图加速重构的当下,企业出海已不再是简单的渠道扩张,而是深度的运营体系输出,构建高效的国外业务中台分发机制,已成为跨国企业打破数据孤岛、实现业务敏捷响应的核心战略,这一机制的核心价值在于:通过统一的能力复用平台,将后端资源标准化,向前端多元化市场进行精准、高效的分发,从而将企业的海外运营成本降低30……

    2026年3月3日
    13800
  • AVX加速TensorFlow训练为何失效?如何优化深度学习性能

    AVX指令集通过并行处理向量数据,能显著加速TensorFlow中的矩阵运算,在主流CPU上通常可带来20%-50%的性能提升,是优化深度学习训练效率的关键技术手段,在深度学习模型训练过程中,计算瓶颈往往不在算法本身,而在硬件指令集的利用率上,TensorFlow作为开源机器学习框架,其底层依赖底层数学库进行张……

    2026年6月2日
    4000
  • MLNL.HOST英国KVM VPS好用吗,英国KVM VPS推荐

    MLNL.HOST英国KVM VPS以每月4.2美元的超低门槛,提供2GB内存、50GB SSD及1Gbps不限流量带宽,是追求高性价比与稳定连接用户的理想选择,在云计算市场日益内卷的当下,寻找一款既便宜又稳定的VPS服务并非易事,许多用户往往在“低价低质”和“高价低配”之间纠结,MLNL.HOST推出的这款英……

    2026年7月12日
    5300
  • 8核CPU12G内存服务器一个月多少钱,哪家便宜

    8核CPU 12G内存的云服务器,目前国内主流云厂商的月租价格普遍在200元到600元之间,具体取决于品牌、带宽大小和购买时长,8核12g服务器多少钱一个月?价格区间解析同样配置的服务器,不同平台报价能差出一倍还多,价格差异主要来自实例类型、网络带宽、磁盘容量以及地域选择,共享型实例比独享型便宜,但性能有上限……

    2026年7月23日
    500
  • Linux SFP怎么配置,常见问题有哪些?

    在Linux系统中,管理SFP光模块的核心在于通过ethtool、lspci等工具识别模块信息,并确保驱动与固件兼容性,同时注意热插拔的规范操作以避免硬件损坏,Linux SFP模块识别与兼容性排查技巧识别SFP模块是网络运维的第一步,很多管理员在接入新模块后发现系统无法正常启用,往往是因为没做基础识别和兼容性……

    2026年7月20日
    500
  • TMHHost 618活动VPS值得买吗,CN2 GIA VPS推荐哪个好?

    TMHHost 618年中狂欢:VPS全场终身七折,多地优质线路任选TMHHost 迎来 618 年中大促,为回馈新老用户,特别推出全场 VPS 终身七折优惠活动,本次活动涵盖了从亚洲高速线路到美国高端网络及高防产品,旨在为用户提供高性能、低延迟的服务器解决方案,满足不同业务场景的建站与部署需求,核心产品线路优……

    2026年7月12日
    11300
  • accessid管理怎么修改对话标识绑定接口?accessid管理方法

    AccessID管理中的对话标识绑定修改接口,核心在于通过API调用更新会话与身份的唯一映射关系,确保数据隔离与安全合规,操作时需严格校验权限并处理并发冲突,在构建智能客服或AI助手系统时,开发者经常面临一个棘手的问题:如何在一个共享的AccessID下,精准区分不同用户的对话上下文?传统的做法是每次请求都携带……

    2026年6月14日
    2600
  • 华为k22r-02服务器报价多少?,值得买吗

    华为K22R-02服务器的价格并非固定数值,它由CPU、内存、存储、网络等配置选项,以及采购渠道和附加服务共同决定,入门配置通常在数万元,高配版本可能超过十万元,实际成交价需要根据具体需求与供应商协商,华为K22R-02是一款面向企业关键业务设计的机架服务器,在虚拟化、数据库和云计算场景中表现稳定,它的定价策略……

    2026年8月17日
    500
  • AI模型训练工具怎么用?训练模型需要哪些步骤

    AI模型训练工具的核心价值在于通过自动化流程降低技术门槛,让开发者能高效利用GPU资源完成从数据清洗到模型部署的全链路优化,而非单纯依赖算力堆砌,在2026年的技术语境下,训练模型早已不再是少数顶尖实验室的专利,随着开源生态的成熟和云端算力的普及,无论是初创团队还是个人开发者,都能找到适配自身需求的训练工具,选……

    2026年6月10日
    3700
  • linux修改句柄的方法是什么?怎么设置?

    修改 Linux 句柄限制并非单一命令能完成,你需要区分当前用户、服务管理方式以及系统内核参数,分三步调整才能确保永久生效,如果只想临时解决“too many open files”报错,一条 ulimit 命令即可;但若要在生产环境彻底解决问题,则需要修改 limits.conf、systemd 配置以及 s……

    2026年7月14日
    1200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注