Linux下用汇编输出Hello, world

news/2024/7/3 2:35:18

下列是Intel汇编语法实现的 Hello, world!程序。

;; hello.asm
;; nasm -f elf hello.asm; will output hello.o
;; ld -s -o hello hello.o;; section, same to segment
segment .data      ; 数据段声明, 下列代码将放在数据段中msg db "Hello, world!", 0xA   ; 要输出的字符串len equ $ - msg         ; 字串长度section .text      ; 代码段声明,下列代码将放入代码段中
global _start      ; 指定入口函数,global修饰是为了让外部可以引用_start
_start:         ; 在屏幕上显示一个字符串mov edx, len   ; 参数三:字符串长度mov ecx, msg   ; 参数二:要显示的字符串mov ebx, 1    ; 参数一:文件描述符(stdout)mov eax, 4    ; 系统调用号(sys_write)int 0x80     ; 调用内核功能; 退出程序mov ebx, 0    ; 参数一:退出代码mov eax, 1    ; 系统调用号(sys_exit)int 0x80     ; 调用内核功能

在Linux下可以用nasm编译成ELF格式的目标文件,然后链接成可执行文件。

nasm -f elf hello.asm  #将生成hello.o
ld -s -o hello hello.o  #链接生成可执行文件hello.

执行./hello就能看到"Hello, world!"的输出了。


http://lihuaxi.xjx100.cn/news/245202.html

相关文章

PostgreSQL:Java使用CopyManager实现客户端文件COPY导入

在MySQL中,可以使用LOAD DATA INFILE和LOAD DATA LOCAL INFILE两种方式导入文本文件中的数据到数据库表中,速度非常快。其中LOAD DATA INFILE使用的文件要位于MySQL所在服务器上,LOAD DATA LOCAL INFILE则使用的是客户端的文件。 LOAD DATA I…

hibernate 全面学习【lazy策略 】

2019独角兽企业重金招聘Python工程师标准>>> lazy策略可以用在&#xff1a; * <class>标签上&#xff1a;可以取值true/false * <property>标签上&#xff0c;可以取值true/false&#xff0c;这个特性需要类增强 * <set>/<list>等集合上…

python 帮助文档、自我解释

现在让我们以交互方式使用 Python 来开始研究。当我们从命令行启动 Python 时&#xff0c;就进入了 Python shell&#xff0c;在这里可以输入 Python 代码&#xff0c;而且立刻会从 Python 解释器获得响应。 清单 1. 以交互方式启动 Python 解释器 Python 2.7.15rc1 (default, …

基于angularJS和requireJS的前端架构

1、概要描述 1.1、angularJS描述:angularJS是可以用来构建WEB应用的&#xff0c;WEB应用中的一种端对端的完整解决方案。通过开发者呈现一个更高层次的抽象来简化应用的开发。最适合的就是用它来构建一个CRUD应用&#xff0c;它提供了非常方便的且统一高效的解决方案&#xff0…

中秋节,送上一次非常有趣的SQL优化实战经历

点击上方“搜云库技术团队”&#xff0c;选择“设为星标”回复“1024”或“面试题”获取4T学习资料补充&#xff1a;看到好多朋友后台留言说对SQL优化感兴趣&#xff0c;我又重新整理了下文章&#xff0c;将更多关于sql优化的知识分享出来&#xff0c;SQL优化也是面试中必问的知…

LeetCode - Maximum Depth of Binary Tree

递归求二叉树的最大深度。 /*** Definition for binary tree* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/ public class Solution {public int maxDepth(TreeNode root) {if(root null)return 0…

关于css中overflow的一些理解

在做移动端开发的时候&#xff0c;遇到过这么个问题&#xff1a;要把图片进行放大&#xff0c;但有时候图片比较长&#xff0c;一个手机的版面看不了&#xff0c;于是需要用到overflow的属性&#xff0c;刚开始用了overflow-y:scroll, 于是问题来了&#xff0c;如果图片没有过长…

使用Novell.Directory.Ldap.NETStandard在.NET Core中验证AD域账号

Novell.Directory.Ldap.NETStandard是一个在.NET Core中&#xff0c;既支持Windows平台&#xff0c;又支持Linux平台&#xff0c;进行Windows AD域操作的Nuget包。 首先我们新建一个.NET Core控制台项目&#xff1a;NetCoreLdap&#xff0c;并下载如下Nuget包&#xff1a; Nove…