我的第一个汇编程序-Hello,World!

【娱乐向】教你用汇编语言写一个 Hello World 教你用汇编语言写一个Hello World 平台 OS: Ubuntu 18.04 STL Platform: i386 Editor:vim Get Started 我们知道,高级语言的源码文件都有自己的格式,比如,C的后缀:.c ,java的后缀: .java , C++的后缀:.cpp等等。 在汇编语言程序设计时,我们采用 .asm后缀的格式(代表assembly)来编辑源码。 vim hello_world.asm 编辑源码 在i386汇编中,不同的section有不同的作用, 它们在被打包成el 阅读详情

作为一个程序员,我想起码要精通3们语言:C, C++, 汇编!今天我开始了我的奇妙的汇编世界。。。。。

我用的是GNU  assembler(GAS).

现用VIM创建一个hello.s文件:

[root@localhost ~]# vim hello.s
回车后,编写汇编代码如下:

  1 .data
  2     msg : .string "Hello, World!/n"
  3     len = . -msg
  4 .text
  5 .global _start
  6
  7 _start:
  8     movl $len, %edx
  9     movl $msg, %ecx
 10     movl $1, %ebx
 11     movl $4, %eax
 12     int  $0x80
 13
 14     movl $0, %ebx
 15     movl $1, %eax
 16     int  $0x80

哈哈。。一个汇编代码就这么搞定了(真长!要是用它来写个操作系统估计要绕地球好多圈吧!)

 

下面开始编译:

 

[root@localhost ~]# as hello.s -o hello.o
[root@localhost ~]# ld -s -o hello hello.o

OK!在当前目录下就产生了一个hello可执行文件。

 

执行:

 

[root@localhost ~]# ./hello
Hello, World!

 

 


汇编语言-输出Hello World 汇编语言来写Hello World 阅读详情

相关推荐

Type-C快充移动电源芯片避坑指南:IP5356配置全流程(支持PD3.0)

本文详细解析了英集芯IP5356芯片在Type-C快充移动电源中的应用,提供了从芯片选型、原理图设计、PCB布局到PD协议调试的全流程实战指南。文章重点剖析了如何避免散热、EMI及协议握手等常见设计陷阱,并分享了量产前的关键测试验证方法,旨在帮助硬件开发者高效打造稳定可靠的快充产品。

weixin_29235525的博客 659

汇编系列02-借助操作系统输出Hello World

通过汇编在x86-64 CPU上的Linux操作系统的系统调用来实现输出hello world这个小例子,详细剖析syscall指令和系统调用是怎么利用寄存器传递参数的。

码农无双的博客 2488

电表协议避坑指南:DLT645-2007与Modbus RTU的5大核心差异对比

本文深入对比了DLT645-2007与Modbus RTU两大电表通讯协议的核心差异,涵盖协议定位、数据地址、报文结构及实测性能。DLT645-2007作为电力行业标准,数据定义统一但效率受限;Modbus RTU作为通用协议,灵活高效但需依赖厂家点表。文章结合实测数据与开发经验,为不同场景下的协议选型与编程实践提供了清晰的避坑指南。

weixin_29166013的博客 87

汇编 hello world

1) C代码,经典中的经典 #include <stdio.h> void main() { printf("Hello world 123\n"); } 2)生成汇编 gcc -S -O0 b4.hello.c 3)原始的 .file "b4.hello.c" .text .section .rodata .LC0: .string "Hello world 123" .text .globl main .type main, @function main

xxxx的博客 1436

汇编语言helloworld

汇编语言输出hello world字符串

YIVIES 1585

自己第一个汇编程序Hello World !

      也许是一种兴趣,也许是一种执着,也许是一种追求,所以选择学习汇编。在这之前看过部分汇编的视频,讲到CPU结构、寄存器之类头蒙了,有种当初连Windows API都没掌握一点的前提下去看MFC的那种感觉,当初确实很傻,现在终于能深刻体会候俊杰的话了:“勿在浮沙筑高台”,严重“受挫碰壁”后当时便把汇编撂那儿了。如今重拾,便下定决心了!       因为朋友、爱人、亲人他们的笑脸永远

Koma的主页 1万+

第一个汇编程序学习"Hello world!"

DATAS  SEGMENT      STRING  DB  13,10,'Hello World!',13,10,'$'            ;13:回车,10换行,‘$’结束标志 DATAS  ENDS CODES  SEGMENT      ASSUME    CS:CODES,DS:DATAS START:      MOV  AX,DATAS          

nicehuai 827

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!',...

weixin_30646315的博客 1362

HELLO,WORLD进阶汇编程序系列

HELLO,WORLD进阶汇编程序系列 2008年03月22日 星期六 上午 11:56 Content: TITLE    ***HELLO,WORLD进阶程序之选择分支 BY LLUCT*** DATA     SEGMENT    ;定义<str

junecau的专栏 710

用 50 种编程语言写“Hello,World!”程序

作者:Sylvain Saurel,来源:InfoQ微信公众号:芯片之家(ID:chiphome-dy)这是一个计算机世界的编程时光之旅。对很多人来说,每当学习一门新的编程语言,写下的第...

strongerHuang 2536

0506第一个汇编程序Hello World

郁闷掉了,刚写了一半的文章突然不见了。这个是教程的05 06 两节。实现了第一个应用程序虽然只是一个很简单的程序,但是里面有非常多的知识点关于开发环境的部分,可以参考http://student.csdn.net/space.php?uid=848938&do=blog&id=55519讲了一个汇编程序的大致框架。这部分的思维导图自己感觉蛮糟的。应该配合代码看起来会比较好理

atskyline 963

汇编学习笔记:第一个程序,Hello World!!!

==============第一个程序,Hello World!!!=========================== 编写执行过程: 1:用文本编辑器编写汇编源程序 2:对源程序进行编译连接,使用汇编语言编译程序对源文件中的程序进行编译,产生目标文件。    再用连接程序对目标程序进行连接,生成可在操作系统中直接运行的可执行文件(.exe)。 3:由操作系统执行可执行文件中的程序

Thinking_IN_Java 1348

"hello,world!"win32汇编小程序

  "hello,world!"win32汇编小程序szText    db "Hello, world!",0szCaption db "Win32

Thinking > Coding >Think 1950

用 50 种编程语言写“Hello,World!

今日份视频号视频-正文-作者丨Sylvain Saurel译者丨夏夜策划丨万佳这是一个计算机世界的编程时光之旅对很多人来说,每当学习一门新的编程语言,写下的第一行代码可能都是“Hello,...

张巧龙的博客 957

使用 GNU 汇编语法编写 Hello World 程序的三种方法

从图中可以看到,我们调用C库函数printf()时,最终会调用内核的write()系统调用,那么我们就可以绕过C库,直接使用系统调用来输出字符串。x86-64中,最多允许 6 个参数通过通用寄存器来传递,多出的参数需要通过栈来传递;的例子,如果说我们输出的参数里有变量,而且是个浮点数,该如何处理呢?来进行系统调用,但它执行的是32位的系统调用,使用的是32位的系统调用表,且效率低下,不应该再使用;节),当被调用的函数中有浮点数时,需要使用 %xmm0~%xmm7 共 8 个 SSE 寄存器来传递参数;

嵌入式Linux内核的博客 2636

汇编语言编写的Hello World

Linux 下用汇编语言编写的代码具有两种不同的形式。第一种是完全的汇编代码,指的是整个程序全部用汇编语言编写。尽管是完全的汇编代码,Linux 平台下的汇编工具也吸收了 C 语言的长处,使得程序员可以使用 #include、#ifdef 等预处理指令,并能够通过宏定义来简化代码。第二种是内嵌的汇编代码,指的是可以嵌入到C语言程序中的汇编代码片段。虽然 ANSI 的 C 语言标准中没有关于内嵌汇编

后花园 2万+

汇编语言第一个hello World程序

【代码】汇编语言第一个hello World程序。

m0_73899178的博客 322

汇编学习输出HELLO WORLD

汇编输出HELLO WORD

m0_63588881的博客 515

汇编实现 hello world

利用RadASM 写汇编程序 本文介绍利用RedASM写一个messageBox “hello world. .386 .model flat, stdcall option casemap :none include windows.inc include kernel32.inc include masm32.inc includelib kernel32.lib includelib masm32.lib .data helloWorld db...

qq_39196431的博客 2170

汇编程序:输出“Hello World!

输出Hello world

weixin_63135906的博客 2722

基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)

基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)基于OOA-BP基于鱼鹰算法优化BP神经网络的数据多输入单输出回归预测(Matlab完整源码和数据)

上一篇: “整数数据类型”+“各种类型的编码”+“类型转换” 的细节过程
下一篇: 十天学习GWT笔记 之 第一天(了解GWT并配置环境)
deep_explore
博客等级 码龄16年 54粉丝 97原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值