ASM 板


LINE

看板 ASM  RSS
※ 引述《yanming (雪地中的雁子)》之铭言: : ※ 引述《zxvc (zxvc)》之铭言: : : 最近作专题要编译一个程式: : : http://iie.fing.edu.uy/investigacion/grupos/gmm/proyectos/tararira/ingles.php3 : : 不过这程式是用C语言与x86指令写的, : : 这程式的原作者似乎是用gcc 3编译的。 : : 可是我手边的机器多是用gcc 4, : : 结果编译的时候出现一堆问题,我试着看看自己有没有能力修正。 : : 之前也没有用过MMX与GCC C & ASM,只在MASM上写过一点x86。 : : 我现在遇到一个问题, : : 就是以下我自己写的一个小程式为什麽无法用gcc编译成功呢? : : 我的编译器是gcc 4.0.3,编译的时候出现这个错误: : : gcc test.c -mmmx : : test.c: In function 'main': : : test.c:9: error: impossible register constraint in 'asm' : : test.c:15: confused by earlier errors, bailing out : : ~~~~~~~~~~~~~~~~~~~ test.c ~~~~~~~~~~~~~~~~~~~~ : : #include <stdlib.h> : : #include <stdio.h> : : int main () : : { : : double a, b; : : a = 5.0; : : b = 0.0; : : asm ( : : "movq %1, %0 \n\t" : : : "=y" (b) : : : "m" (a)); : : printf ("Hello world.: %6.2f\n", b); : : return 0; : : } : : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : : 『: "=y" (b)』那一行我是参考这篇文章设定的: : : http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Machine-Constraints.html#Machine-Constraints : : 或者缩减网址: : : http://0rz.tw/ce2AA : : 希望有高手能帮我解答,谢谢。 : __asm{movq xmm0,temp_int} : 请问当我在用 intel inline assembly 时, : 编译到这一行时, : .net 会出现 "不合法的资料型态"的错误类别 : 改成 __asm{movq mm0,temp_int} 时就可以正确运作 : 这是由於 xmm0 是浮点数暂存器的关系吗? : 如果是,那要怎麽使用 SSE 的指令呢?(xmm0 ~ xmm7 都不能用吗?) 前言 (废话): mm0 ~ mm7 是 MMX registers (各 64-bit, 跟 fpu stack 有对应关系,很烦的) xmm0 ~ xmm7 是 SSE 新加的没错,各 128-bit,为独立单元 movq 这个指令当初是跟 MMX 一并加入的,只能作用在 MMX registers 上 後来 SSE1 虽然加上 xmm0 ~ xmm7,但此时 movq 还不能用在 xmm0 ~ xmm7 上喔 到了 SSE2,Intel 把 movq 这类指令也加上了可以作用在 xmm registers 上的 form "All of 64-bit SIMD integer instructions introduced with MMX technology and SSE extensions (with the exception of the PSHUFW instruction) have been extended by SSE2 extensions to operate on 128-bit packed integer operands located in XMM registers" (Intel 这麽做的目的,是为了全面抛弃 MMX, 以前的 MMX code 只要把 mm0 ~ mm7 都换成 xmm0 ~ xmm7,再重新 assemble/compile 大部份都不需要手动去改...) 例如 movq xmm0, mem 就会从 mem 拿 64 bits 放进 xmm0[63:0],xmm0[127:64] 则填 0 好啦,讲了这麽多废话, 大概给你两个建议: 1. 不要再用 mm0 ~ mm7,全改用 xmm0 ~ xmm7 吧 2. 换新的 compiler,确定可以支援 SSE2 的... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.25.140 ※ 编辑: l71cm 来自: 140.112.25.140 (05/24 18:25)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP