【发布时间】:2015-01-17 07:34:12
【问题描述】:
我是组装新手。最近我需要 Visual Studio 2013 中的内联程序集来提高性能。
但是我来了分支目标范围问题:
_asm
{
mov ecx, cnt;
jecxz AZERO:
AL1:
/*Some operation codes here, but may be exceed 128 byte*/
loop AL1;
AZERO:
}
我知道原因是“操作码”的大小超过了128字节。
我的简单解决方案是:
for (int i = 0; i < cnt; i++) {
_asm
{
/*Some operation codes here, but may be exceed 128 byte*/
}
}
这似乎行得通。
但是不知道这个方法够不够好?
还有没有什么好的方法可以在不引起分支范围问题的情况下处理循环部分?
【问题讨论】:
标签: c++ assembly x86 inline-assembly