plc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2003-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2930回复:15

请教汇编指令movdqu

楼主#
更多 发布于:2002-10-25 16:42
下载了一个程序,有段汇编编译总是通不过,用nasm编译的
就是下段:
movdqu xmm0, [edi]
提示 instruction expected
查了下资料是属于 IA-32 Intel Architecture 。。。
又提到 SSE2 等术语,搞不明白
请教各位大虾,该指令是否对计算机cpu有要求,是P4的专用指令么
SSE2=?
我的cpu的P3内核的赛扬900,
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-25 17:18
NASM里应该有个指示字指示什么CPU吧,我不知道P4的指示字是什么,你查查。
如果实在不行,你就直接写机器码或者写个宏吧,很好的
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-25 22:00
很有可能这条指令在你的COU上面不支持
plc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2003-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-26 00:13
又在网上查了下
看来 movdqu指令只能在p4内核的cpu上才支持
头都是大的,第一次碰到这种问题,居然出现cpu的兼容问题!
谢谢各位!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-26 10:15
又在网上查了下
看来 movdqu指令只能在p4内核的cpu上才支持
头都是大的,第一次碰到这种问题,居然出现cpu的兼容问题!
谢谢各位!

1,你在编译时,看的是目标机器的指令集,不是你的机器CPU,你完全可以在386上编译P4程序,no problem。
2,你那20分给不给我?
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
plc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2003-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-26 11:07
当然给啊,能解决问题,给40分都行
但你要告诉我怎么编译啊,怎么设置啊
我现在是CII的CPU,怎么设置?如果照你的方法编译成功后,能否在我的机子上运行啊
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-26 11:16
当然给啊,能解决问题,给40分都行
但你要告诉我怎么编译啊,怎么设置啊
我现在是CII的CPU,怎么设置?如果照你的方法编译成功后,能否在我的机子上运行啊
 

1,我说过的,和你的CPU无关
2,编译以后目标机器是P4(还是P3?反正就是支持movdqu的那个,应该是P3?),所以无法在你的机器上运行。对了,好像CII是P3的简化,没准行,你自己试试就知道了。我看了下手册,没发现说是哪个CPU上的。
3,自己硬编码吧,它的机器码是0F30F6F/0F30F7F后面跟内存/寄存器
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-26 11:16
郁闷,我现在用的都是Celeron的机器,玩不了这么高级的东西 :(
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-26 15:38
我忽然想到,如果你想你的程序只能跑在P3以上机器上,那你就用,否则还是抛弃SSE吧,用其它指令组合代替。如果你对速度要求太严格,只能用SSE了 :( :( :( :( :(
放分放分,庆祝一下
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2002-10-26 16:50
SSE2好像是P4的指令。
so,你的soft要加上个“for Pentium4及以上CPU”的配置条件。 :D
whdriver
驱动牛犊
驱动牛犊
  • 注册日期2002-03-05
  • 最后登录2002-10-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-26 20:06
Intrinsics Availability on Intel Processors

Processors MMX technology intrinsics Streaming SIMD Extensions (SSE) Streaming SIMD Extensions 2 (SSE2) instructions
Processors that support SSE2 Yes Yes Yes
Pentium III  Yes Yes Not available
Pentium II  Yes Not available Not available
Pentium with MMX technology Yes Not available Not available
Pentium Pro  Not available Not available Not available
Pentium  Not available Not available Not available
whdriver
驱动牛犊
驱动牛犊
  • 注册日期2002-03-05
  • 最后登录2002-10-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-10-26 20:08
Processors
How will SSE2 be used in real software?

This applies to:
Intel(R) Pentium(R) 4 processors



Symptom(s):
How will SSE2 be used in real software?
With SSE2, what data types does it work on best?


Solution:
SSE2 (Streaming SIMD Extensions 2) instructions accelerate video, speech, encryption, imaging, photo processing, content creation, financial, engineering, and scientific applications.

SSE2 supports single as well as double precision operations.


VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-10-27 00:02
给分给分,我现在喝多了,给我几十分醒酒 :mad: :mad: :mad:
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
plc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2003-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-10-27 10:18
Koms Bomb:
heee,你说给就给的啊!我岂不好没面子。
我的问题你都没回答清楚就要分!
第一,搞清楚 SEE,SEE2是什么东西没?你可要先搞清楚SSE和SSE2是有区别的
第二,到底P3,P4支持什么?
第三。movdqu指令到底在什么CPU下才能支持?
你老只是含糊的提到,我提的两个概念你都是模糊的。
heeee,我查清楚了,大佬要不你贴个贴子,我回答清楚,你给分我哦

 
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-10-27 15:52
你的程序是网上下的说明是可以编译通过的!!!
如果你的编译器够新就没问题!!!
你说的指令可能是SEE中的扩展宏库里的一条宏指令
你要去下个新的宏库,也就是说SEE指令的支持库!!!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-10-28 10:27
Koms Bomb:
heee,你说给就给的啊!我岂不好没面子。
我的问题你都没回答清楚就要分!
第一,搞清楚 SEE,SEE2是什么东西没?你可要先搞清楚SSE和SSE2是有区别的
第二,到底P3,P4支持什么?
第三。movdqu指令到底在什么CPU下才能支持?
你老只是含糊的提到,我提的两个概念你都是模糊的。
heeee,我查清楚了,大佬要不你贴个贴子,我回答清楚,你给分我哦

 
 

我当然知道SSE和SSE2有区别,但我从来没用过!我确实也不知道你那条指令是SSE还是SSE2的,但我说的不是一种方法吗?SSE和SSE2的区别重要吗?即使有了SSE3,用我的方法(自己硬编码),还是可行的 :mad: :mad: :mad: :mad: :mad:
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
游客

返回顶部