我和汇编的那点事-hello world

本文介绍使用nasm汇编语言在Linux环境下通过系统调用输出Hello, World!的方法。文章详细展示了如何设置寄存器以实现字符串输出,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个程序-Hello World

        按照国际惯例,第一个程序当然是hello world开始。
nasm输出“hello world”字符串,也许有N种方法,但是我们在linux平台下,只需要一种方法就OK了,那就是系统调用。
        N中方法中的一些: BIOS功能调用,显存地址( A0000-BFFFF)【参考《linux内核完全剖析》0.12的25页】,还有另一种是利用栈.
      因为很多的汇编程序书籍开篇就一大堆的寄存器,操作系统原理让初学者很苦恼,为了减少这些烦恼,我们用到那里才学习那里,项目式的学习.
      下面是系统调用的下载地址:
      linux系统调用
      我们需要接触的寄存器也就那几个:
      eax 系统调用号.  
      EBX 第  1  个参数;
      ECX 第  2  个参数.
      EDX第  3   个参数.
      ESI第   4   个参数.
      EDI第   5   个参数.
     
[section .data]
  hello  db "hello, world!",0x0a
  STRLEN equ $ - hello
[section .text]
  global _start
  _start:
     mov ebx, 1
     mov ecx, hello
     mov edx, STRLEN
     mov eax, 4
     int 0x80
     mov ebx, 0
     mov eax, 1
     int 0x80


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值