第一个汇编程序:打印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

你可能感兴趣的:(第一个汇编程序:打印hello world)