标题:ubuntu的at&t汇编--gas无法使用识别mmx寄存器
取消只看楼主
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
结帖率:100%
已结贴  问题点数:8 回复次数:4 
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
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
xuzejia_love
Rank: 2
等 级:论坛游民
帖 子:41
专家分:49
注 册:2010-12-5
得分:0 
回复 4楼 zklhp
呵呵,确实写错了。

学的是语法,要的是算法。
2011-04-21 23:45
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.810552 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved