在linux环境中进行AT & T格式的汇编语言demo示例

本文详细介绍了一个简单的汇编语言程序“Hello, world!”的编写过程,包括数据段和代码段的声明、系统调用的使用,以及如何通过GCC和LD进行编译和链接。此外,还介绍了如何使用GDB进行调试,以及as命令的编译应用。
编写汇编语言源代码hello.s
.data  # 数据段声明
	msg: .string "Hello,world!\n" # 要输出的字符串

	len = .-msg  #字符串长度

.text	# 代码段声明

.globl _start  # 指定入口函数

_start:  # 在屏幕上显示一个字符串
	movl $len,%edx #参数三:字符串长度
	movl $msg,%ecx #参数二:要显示的字符串
	movl $1,%ebx #参数一:文件描述符
	movl $4,%eax #系统调用号(sys_write)
	int $0x80  #调用内核功能
				# 退出程序
	movl $0,%ebx #参数一:退出代码
	movl $1,%eax  #系统调用好(sys_exit)
	int $0x80  #调用内核功能
删除除了hello.s汇编语言源代码之外的其他文件

adog@E531:linux_assembly$ rm -rf !(hello.s)
adog@E531:linux_assembly$ ls
hello.s

对汇编语言源代码进行编译,并带有调试信息

adog@E531:linux_assembly$ gcc -c -g -o hello.o hello.s
adog@E531:linux_assembly$ ls
hello.o hello.s

使用ld指令对hello.o进行链接

adog@E531:linux_assembly$ ld -o hello hello.o
adog@E531:linux_assembly$ ls
hello hello.o hello.s

使用gdb --tui进行可以查看源代码的调试

adog@E531:linux_assembly$ gdb --tui hello
adog@E531:linux_assembly$

在这里插入图片描述

使用as命令也可以进行编译

as -o to.o from.s
ld -o to to.o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值