初学AT&T汇编,刚学会如何编译

内核编译和嵌入式产品的设计与开发
回复
liuweni
帖子: 70
注册时间: 2006-10-19 16:10

初学AT&T汇编,刚学会如何编译

#1

帖子 liuweni » 2007-11-21 21:26

[liuweni@Liuweni asm]$ cat hw
#This is my first assembly language
.section .data
output:
.ascii "The processor Vendor ID is ‘xxxxxxxxxxxx’\n"
.section .text
.globl _start
_start:
movl $0, %eax
cpuid
movl $output, %edi
movl %ebx, 28(%edi)
movl %edx, 32(%edi)
movl %ecx, 36(%edi)
movl $4, %eax
movl $1, %ebx
movl $output, %ecx
movl $42, %edx
int $0x80
movl $1, %eax
movl $0, %ebx
int $0x80


[liuweni@Liuweni asm]$ as hw
[liuweni@Liuweni asm]$ ls
a.out hw hw.bak hw.o
[liuweni@Liuweni asm]$ ./a.out
bash: ./a.out: 权限不够
[liuweni@Liuweni asm]$ su
口令:
[root@Liuweni asm]# ./a.out
bash: ./a.out: 权限不够
[root@Liuweni asm]#
上次由 liuweni 在 2007-11-21 21:37,总共编辑 1 次。
liuweni
帖子: 70
注册时间: 2006-10-19 16:10

#2

帖子 liuweni » 2007-11-21 21:31

[root@Liuweni asm]# as -o hw.o hw.s
[root@Liuweni asm]# ld -o hw hw.o
[root@Liuweni asm]# ls
hw hw.bak hw.o hw.s
[root@Liuweni asm]# .hw
bash: .hw: command not found
[root@Liuweni asm]# ./hw
The processor Vendor ID is �AuthenticAMDxx[root@Liuweni asm]#


搞定,忘记了连接
ioriliao
帖子: 11
注册时间: 2007-11-20 21:05

#3

帖子 ioriliao » 2007-12-17 15:34

yes yes....
so am i
头像
roamer
帖子: 43
注册时间: 2007-04-18 3:09
来自: UESTC

#4

帖子 roamer » 2008-02-18 17:18

楼上的牛人你们好,我最近也在学gcc下的汇编,但是一直没有找到好的资料,请问你们可以把你们的资料发出来大家共享一下吗?
谢谢了
我的邮箱:roamer.roamer@gmail.com
foxhlchen
帖子: 14
注册时间: 2009-01-01 11:36

Re: 初学AT&T汇编,刚学会如何编译

#5

帖子 foxhlchen » 2009-02-05 16:58

我有一本richard blum写的汇编语言程序设计中文版(马朝晖 译),感觉挺全面的,你可以去书店找找,当当和卓越都有卖35块,是讲linux下汇编的,全书用的都是at&t风格。不过时效性毕竟是翻译的原作者写的时候是05年……,奔腾4时代,里面没有介绍酷睿2的新功能!
头像
myewmyew
帖子: 590
注册时间: 2008-09-06 23:40
来自: 天朝
联系:

Re: 初学AT&T汇编,刚学会如何编译

#6

帖子 myewmyew » 2009-02-05 17:05

一窍不通。。。
我是一只菜鸟。。。
Ubuntu | Blog | Twitter | Blender
word_world
帖子: 1
注册时间: 2011-12-14 0:19

Re: 初学AT&T汇编,刚学会如何编译

#7

帖子 word_world » 2012-01-11 22:28

foxhlchen 写了:我有一本richard blum写的汇编语言程序设计中文版(马朝晖 译),感觉挺全面的,你可以去书店找找,当当和卓越都有卖35块,是讲linux下汇编的,全书用的都是at&t风格。不过时效性毕竟是翻译的原作者写的时候是05年……,奔腾4时代,里面没有介绍酷睿2的新功能!

我想做一个类似编译开关的语句应该怎么做呢?
比如说
.section .text
.def USE_GCC #这个是开关,如果定义了USE_GCC就用gcc来编译

.ifdef USE_GCC
.globl main
main:
.else
.globl _start
_start:
.endif
下面就是我的代码
...
回复