博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下用汇编输出Hello, world
阅读量:6500 次
发布时间:2019-06-24

本文共 793 字,大约阅读时间需要 2 分钟。

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

;; hello.asm;; nasm -f elf hello.asm; will output hello.o;; ld -s -o hello hello.o;; section, same to segmentsegment .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.old -s -o hello hello.o  #链接生成可执行文件hello.

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

转载地址:http://wstyo.baihongyu.com/

你可能感兴趣的文章
可以简易设置文字内边距的EdgeInsetsLabel
查看>>
[詹兴致矩阵论习题参考解答]习题1.3
查看>>
Android Fragment的使用
查看>>
沙朗javascript总结一下(一)---基础知识
查看>>
js深入研究之函数内的函数
查看>>
LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
查看>>
python之commands模块
查看>>
android应用开发--------------看RadioGroup源代码,写相似单选选项卡的集成控件(如底部导航,tab等等)...
查看>>
LeetCode - Binary Tree Level Order Traversal
查看>>
FTP协议完全详解
查看>>
【C语言天天练(十五)】字符串输入函数fgets、gets和scanf
查看>>
【环境配置】配置sdk
查看>>
accept()
查看>>
USB 2.0 Hub IP Core
查看>>
USB 2.0 OTG IP Core
查看>>
解读浮动闭合最佳方案:clearfix
查看>>
Charles使用
查看>>
Python GUI编程(Tkinter) windows界面开发
查看>>
dynamic关键字的使用
查看>>
iOS 音乐播放器之锁屏效果+歌词解析
查看>>