标题:ubuntu的at&t汇编--gas无法使用识别mmx寄存器
只看楼主
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
结帖率:100%
已结贴  问题点数:8 回复次数:8 
ubuntu的at&t汇编--gas无法使用识别mmx寄存器
# mmxtest.s - An example of using mmx data types
    .section .data
    values1:
    .int 1,-1
    values2:
    .byte 0x10,0x05,0x32,0x47,0xe4,0x00,0x01
    .section .text
    .globl _start
_start:
    nop
    movq values1,%mmx0
    movq values2,%mmx1
    movl $1,%eax
    movl $0,%ebx
    int $0x80


代码保存为“mmxtest.s“,以上代码用:as -gstabs -o mmxtest.o mmxtest.s后,显示了以下错误:

mmxtest.s: Assembler messages:
mmxtest.s:11: Error: bad register name `%mmx0'
mmxtest.s:12: Error: bad register name `%mmx1'


这跟cpu有关吗?我的cpu是amd 245,应该也是支持mmx指令的吧。
上网百度了一下,都是英文的资料,看不懂啊~_~
赐教,谢。


[ 本帖最后由 xuzejia_love 于 2011-4-23 15:54 编辑 ]
搜索更多相关主题的帖子: 寄存器 
2011-04-21 00:03
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:2 
masm的话是要加.mmx一类的东西告诉编译器 as就不懂了

话说 这个 as 和 gdb 有嘛关系呢? 到底是gdb不支持mmx还是as不支持?
2011-04-21 08:32
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:0 
回复 2楼 zklhp
as就是gas,和gdb是linux中的搭配,一个是编译,一个是调试的。
masm用mmx寄存器要告诉编译器的吗?那要怎么告诉?不知道可不可以类推。
我是按照书上给的代码调试的,它也没有说要告诉gas编译器使用mmx寄存器。

学的是语法,要的是算法。
2011-04-21 12:39
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用xuzejia_love在2011-4-21 12:39:17的发言:

as就是gas,和gdb是linux中的搭配,一个是编译,一个是调试的。
masm用mmx寄存器要告诉编译器的吗?那要怎么告诉?不知道可不可以类推。
我是按照书上给的代码调试的,它也没有说要告诉gas编译器使用mmx寄存器。

对啊 但我看你的表述却理解成了“gdb不支持mmx” 但你的例子给的是没法编译的错误。。。

masm是加.mmx 肯定有文档说这个事 看英文文档也是基本功啊。。
2011-04-21 13:19
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:0 
回复 4楼 zklhp
呵呵,确实写错了。

学的是语法,要的是算法。
2011-04-21 23:45
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
得分:2 
Linux下的吧
貌似还没玩过的说
有时间玩一下Linux哈
2011-04-22 13:07
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:2 
这个是真不会

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2011-04-22 13:41
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:0 
我查到了,gas引用mmx寄存器是要这个:%xmm0到%xmm7,难怪会出现bad register的现象了。

[ 本帖最后由 xuzejia_love 于 2011-4-23 15:58 编辑 ]

学的是语法,要的是算法。
2011-04-23 23:53
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:0 
回复 8楼 xuzejia_love
不好意思,纠正一下,使用mmx寄存器应该是这样的:%mm0至%mm7,%xmm0至%xmm7是xmm寄存器,两者不一样的。

学的是语法,要的是算法。
2011-04-25 22:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-337391-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.984753 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved