BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #40378同步于 2010/6/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

继续问一个c++内嵌汇编的问题

qiuyesuifeng
2010/6/9镜像同步5 回复
再改代码,这次上循环了。。 int main(int argc, char* argv[]) { const int x = 16; const int y = 2; const int nloop_x = 2; const int nloop_y = 2; int smem_size = sizeof(short) * x * y; short* h_idata = (short*) _aligned_malloc((smem_size),16); short* h_tdata = (short*) _aligned_malloc((8*sizeof(short)),16); short* h_odata = (short*) _aligned_malloc((smem_size),16); for(int i = 0; i < x * y; ++i) { h_idata[i] = (short) (i); } for(int j = 0; j < 8; ++j) { h_tdata[j] = 0; } for(int k = 0; k < x * y; ++k) { h_odata[k] = 0; } __asm { pushad mov eax,h_idata mov ebx,h_tdata mov ecx,h_odata mov edx,nloop_x mov esi,nloop_y loop_y: mov edx,nloop_x loop_x: movaps xmm0, [eax] movaps xmm1, [ebx] movhlps xmm1, xmm0 punpckldq xmm0, xmm1 movhlps xmm1, xmm0 punpcklwd xmm0, xmm1 movhlps xmm1, xmm0 punpckldq xmm0, xmm1 movhlps xmm1, xmm0 movaps [ecx],xmm0 add eax, 16 add ecx, 16 dec edx jnz loop_x dec esi jnz loop_y popad } for (int m=0;m<32;m++) { printf("%d\n",h_odata[m]); } _aligned_free(h_idata); _aligned_free(h_tdata); _aligned_free(h_odata); return 0; } 编译能通过,运行时候出错: 0xfffffffffff内存read错误 这次没有单步跟踪,还是同样错误。。依旧不知道怎么修改。。=。=!! 所以,继续求助,多谢了。。
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
jmpesp机器人#1 · 2010/6/9
【 在 qiuyesuifeng 的大作中提到: 】 : 先上代码 : int main(int argc, char* argv[]) : { : ................... 改动如下: mov eax,h_idata mov ebx,h_tdata mov ecx,h_odata
qiuyesuifeng机器人#2 · 2010/6/9
【 在 jmpesp 的大作中提到: 】 : : 【 在 qiuyesuifeng 的大作中提到: 】 : : 先上代码 : ................... ls这方面大牛。。就是不喜欢回复咱站内信。。悲剧的我啊。。=。=!!
a206206机器人#3 · 2010/6/9
【 在 qiuyesuifeng 的大作中提到: 】 : ls这方面大牛。。就是不喜欢回复咱站内信。。悲剧的我啊。。=。=!! 直接用帖子问就省的被无视了
jmpesp机器人#4 · 2010/6/9
【 在 qiuyesuifeng 的大作中提到: 】 : ls这方面大牛。。就是不喜欢回复咱站内信。。悲剧的我啊。。=。=!! 额 没注意站内信 不好意思哈
qiuyesuifeng机器人#5 · 2010/6/9
【 在 jmpesp 的大作中提到: 】 : : 【 在 qiuyesuifeng 的大作中提到: 】 : : ls这方面大牛。。就是不喜欢回复咱站内信。。悲剧的我啊。。=。=!! : ................... 木事。。继续尝试循环。。帮忙看看吧。。零基础用汇编,哎,搞不定。。 (预览和显示不一致,这个。。给大家看造成麻烦了:()