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://test.idctop.com/article/483349.html

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

相关推荐

  • 服务器为什么需要客户端的公钥,公钥怎么获取

    服务器需要客户端的公钥才能完成基于SSH协议的身份验证,ShowPublicKey是查看当前已加载密钥公钥的快捷命令,用于确认密钥是否被正确识别,服务器需要客户端的公钥吗?SSH认证机制解读在SSH公钥认证的流程里,服务器端必须预先存储客户端的公钥,这一步骤是信任链的起点,当你发起连接时,客户端用私钥签名一个挑……

    2026年8月4日
    300
  • 如何在Python中判断Linux系统?Linux系统检测代码

    在Linux系统中,Python可以通过执行系统命令、读取系统文件或利用第三方库来准确判断当前运行环境,其中platform模块和subprocess模块是最常用且稳定的方案,很多开发者在编写跨平台脚本时,经常遇到“这段代码是在Linux上跑,还是Windows上跑”的困惑,特别是当你的项目部署在云服务器上,或……

    2026年7月12日
    3300
  • 安徽h3c塔式服务器到底多少钱,哪个品牌型号性价比高

    安徽H3C塔式服务器的价格并非固定数,而是由配置、渠道和促销活动共同决定,一台主流配置如H3C R4900 G3的市场报价通常在12000元到20000元之间,具体需根据实际选型向当地经销商询价,很多朋友在采购时都会先问价格,但价格背后的配置逻辑和服务成本才是决定最终花销的关键,今天我们就从实际场景出发,把安徽……

    2026年8月16日
    500
  • Linux如何生成图片?linux生成图片代码

    在Linux环境下生成图片,最推荐的方式是使用Python结合Pillow库进行编程绘图,或利用ImageMagick等命令行工具批量处理,这两种方法在服务器端自动化场景中效率最高且资源占用最低,很多开发者习惯在Windows或macOS上通过图形界面工具制作图片,但一旦迁移到Linux服务器环境,尤其是无头模……

    2026年7月7日
    5000
  • 安卓网络ping怎么测,使用CloudCampus APP现场验收方法

    使用CloudCampus APP进行安卓网络Ping测试,是实现无线网络现场验收最高效、最精准的工程手段,通过安卓移动端的便携性与专业测试工具的结合,工程师能够快速诊断网络连通性、评估链路质量,并即时输出验收报告,彻底解决了传统命令行工具操作复杂、数据难以留痕的痛点,这一方案不仅提升了验收效率,更确保了网络交……

    2026年3月23日
    9000
  • Linux内存buffer是什么?linux内存buffer和cache区别

    在 Linux 系统中,内存中的 Buffer(缓冲区) 和 Cache(缓存) 是两个经常被混淆但功能截然不同的概念,理解它们对于系统性能调优和故障排查至关重要,以下是对 Linux 内存中 Buffer 的详细解析,包括其定义、作用、与 Cache 的区别以及如何查看和管理,什么是 Buffer(缓冲区……

    2026年7月9日
    13400
  • UCloud域名价格多少?域名续费赎回流程详解

    在UCloud云平台上,域名注册价格通常与主流注册商持平,域名续费需通过控制台手动操作以避免过期,而域名赎回则是在过期宽限期结束后的高成本补救措施,流程复杂且费用高昂,域名作为互联网企业的数字资产,其管理细节直接关乎业务连续性,许多用户在使用UCloud进行云服务部署时,往往关注计算资源而忽视域名维护,域名的生……

    2026年6月19日
    2200
  • Linux中覆盖文件如何操作?,覆盖文件命令有哪些?

    Linux中的数据覆盖操作既强大又危险,理解其机制和正确使用方法是避免数据丢失的关键,覆盖(overwrite)是 Linux 日常操作中最高频、也最容易被忽视的风险点,无论是用 cp 覆盖配置文件,还是用 dd 覆写磁盘,一旦操作失误,数据恢复成本极高,本文从实际场景出发,梳理覆盖操作的常见陷阱、安全执行方法……

    2026年7月22日
    700
  • app服务器的cdn是什么,WSA与CDN的关系详解

    WSA(全站加速)与CDN(内容分发网络)并非简单的替代关系,而是互补与融合的协同关系,CDN专注于静态内容的边缘缓存与分发,解决“文件传输慢”的问题;WSA则专注于动态内容的传输优化与链路加速,解决“数据交互慢”的问题,对于现代App服务器架构而言,“CDN+WSA”的组合模式是实现全链路加速的最佳解决方案……

    2026年3月19日
    8700
  • 七牛云直播推流SDK好用吗?七牛云直播推流SDK接入教程

    七牛云直播推流SDK在低延迟、高稳定性和多端适配方面表现优异,是构建专业级直播应用的可靠选择,尤其适合对画质和互动实时性有较高要求的场景,在移动互联网流量见顶的今天,直播早已不是简单的视频播放,而是涵盖了电商带货、在线教育、游戏竞技等多元场景的核心交互手段,对于开发者而言,从底层搭建一套稳定、低延迟的推流系统是……

    2026年6月25日
    1800

发表回复

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