第一个汇编程序:打印hello world

;dm01.asm
;print 'hello world'

section .data		;数据段声明
	msg db "Hello, world!", 0xA		;要输出的字符串
	len equ $ - msg					;字符串长度

section .text		;代码段声明
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	;调用内核功能

 

编译:

$ nasm -f elf64 -o dm01.o dm01.asm

(注意:如果是32位机,就把上面的64去掉)

链接:

$ ld -o dm01 dm01.o

运行及结果:

$ ./dm01
hello world

转载于:https://www.cnblogs.com/mocuishle/p/8094024.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值