【发布时间】:2012-04-17 07:34:41
【问题描述】:
您好,我目前正在尝试自己学习 C++ 中的汇编。我的项目中有汇编代码,目前处于高级 c++ for 循环中,如果可能的话,我需要帮助将其转换为完全汇编,这是我目前拥有的代码:
char temp_char;
for (int i = 0; i < length; i++){
temp_char = characters [i];
__asm {
push eax
push ecx
movsx ecx,temp_char
movsx eax,key
push ecx
push eax
call test
add esp, 8
mov temp_char,al
pop ecx
pop eax
}
}
【问题讨论】:
-
@amit 谢谢你编辑了:)
-
为什么不简单地检查编译器的结果?我想甚至 VisualC++ 也支持从编译 C/C++ 代码的结果中输出汇编语言文件。或者,如果失败,请对生成的二进制文件使用反汇编程序,以向编译器学习。
-
对不起,我试图查看反汇编程序,但对我来说没有太大意义。
-
@Paul- 如果您正在检查编译器的汇编输出,我建议在构建之前禁用 all 形式的优化。这使程序集尽可能地忠实于底层代码。经过大量优化的程序集最终可能会非常混乱。
标签: c++ visual-studio visual-c++ assembly for-loop