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燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP