| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1211 人关注过本帖
标题: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
快速回复:ubuntu的at&t汇编--gas无法使用识别mmx寄存器
数据加载中...
 
   



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

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