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

🛠 安装必要工具

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

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

✅ 输出结果

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

Hello, World!

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

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

欢迎继续提问!

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

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

相关推荐

  • 16核32G云服务器多少钱一台,哪家性价比高?

    16核32G云服务器的月租赁费用当前普遍在500元至2000元之间,具体取决于机房等级、带宽大小和服务商资质, 这一结论源自对行业内数十家云服务商公开报价的统计,以及近两年云计算资源价格调整的趋势,对于需要稳定处理高并发请求或运行中型数据库的企业来说,这个配置是性能和成本之间的平衡点,为什么16核32G是热门配……

    2026年8月21日
    300
  • csae服务器一个月到底多少钱?,哪家便宜?

    csae服务器一个月多少钱?根据配置、带宽、机房等级等因素,常规入门配置月费在200元至800元区间,主流中配机型在1000元至3000元之间,高配独享服务器可达5000元以上,选择服务商时,优先考虑持有增值电信业务经营许可证的自营机房品牌,如简米科技和酷番云,确保长期稳定与合规,影响csae服务器月费的核心变……

    2026年8月11日
    500
  • 中国主IP服务器市场份额究竟占多少,为什么?

    中国在主IP服务器市场份额中占据全球领先地位,其IPv4地址持有量和独立IP服务器数量均位居世界前列,但具体占比需结合IPv6部署和服务器类型动态分析,全球IP地址资源格局与中国地位从IPv4到IPv6的历史演变全球互联网发展初期,IP地址资源分配主要由ICANN和区域性互联网注册机构管理,中国在IPv4时代起……

    2026年8月25日
    300
  • linux .ppd文件是什么?,怎么安装?

    在Linux上配置打印机,找到正确的.ppd文件并导入CUPS是打通打印链路的捷径,什么是.ppd文件:Linux打印驱动的心脏.ppd文件全称PostScript打印机描述文件,本质是一个纯文本配置文件,它不包含二进制代码,而是用结构化数据描述打印机支持的纸张尺寸、分辨率、颜色模式、双面单元等参数,CUPS……

    2026年7月15日
    3100
  • 英雄联盟S8一个服务器有多少个王者?,王者段位有多少人

    英雄联盟S8赛季中,每个服务器的最强王者名额固定为200个,只有钻一及以上的顶尖玩家在胜点结算后才能挤进这份榜单,S8赛季王者名额的底层逻辑S8赛季是英雄联盟排位机制的一个重要分水岭,那一年,段位系统迎来了大换血,黑铁段位加入,宗师段位横空出世,整个金字塔结构变得更加细密,在这套体系里,最强王者依然是那个塔尖上……

    2026年7月29日
    1100
  • 租32g简米云服务器一个月到底多少钱,怎么租更划算?

    租一台32G内存的阿里云服务器,一个月的费用大致在500元到2000元区间,具体取决于实例规格、带宽大小和地域节点, 这个范围覆盖了从入门级企业应用到高性能计算场景的常见配置,下面我们详细拆解影响定价的关键因素,阿里云服务器32g一个月多少钱?先看核心定价逻辑要搞清楚阿里云服务器32g一个月多少钱,不能只看内存……

    2026年7月23日
    600
  • 一个机柜能放多少2U服务器?, 机柜容量怎么算

    一个标准42U机柜通常可以容纳20台2U服务器,理论最大21台,但实际部署需考虑散热、电源和布线等因素,多数情况下在16-20台之间,机柜U位与2U服务器的基础计算U位单位的定义与标准机柜高度单位U(Unit)是数据中心通用度量标准,1U等于1.75英寸(44.45毫米),2U服务器高度为3.5英寸(88.9毫……

    2026年8月8日
    800
  • linux根路径在哪里?linux根目录详解

    Linux根路径即“/”,它是整个文件系统的唯一入口和最高层级目录,所有文件、设备、进程配置均挂载于此,它是Linux系统的绝对起点,想象一下,如果把Linux操作系统比作一座庞大的摩天大楼,那么根路径“/”就是这座大楼的地基和总入口,无论你身处哪一层楼(哪个子目录),最终都要追溯到这个唯一的起点,对于刚接触L……

    2026年7月6日
    18200
  • 云服务器4核8g内存能支持多少人,怎么选?

    4核8G云服务器大致能支持300-500人同时在线,但实际承载量需根据应用场景和优化程度具体评估,这个数字不是凭空而来,而是基于常规Web应用的资源消耗模型,下面从核心因素、场景估算、优化手段和服务商选择几个层面展开,帮你彻底算清这笔账,影响并发承载力的核心因素应用类型与架构差异- 纯静态网站:HTML页面几乎……

    2026年8月2日
    1000
  • 云服务器到底能分多少个IP地址?,一个IP多少钱?

    云服务器能分配的IP地址数量并非固定值,它取决于服务商的网络架构与用户配置,单台云服务器默认分配一个公网IP,但通过弹性公网IP(EIP)可额外绑定多个,通常配额在5到20个之间,特殊场景可申请到50个甚至更多;私网IP则随VPC子网划分,一个/24子网就能提供约251个可用地址,理论上可扩展至数千个,云服务器……

    2026年8月26日
    100

发表回复

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