我正在对一个 C++ 项目进行 32-64 位迁移,该项目包含一些 64 位平台不支持的汇编代码。我想提供有关我必须迁移的项目的基本信息。
项目的输出是另一个 C++ 项目使用的 lib 文件
这是包含汇编代码的上下文:
int* a = Begin_args; int* b = End_args; (where Begin_args and End_args are int*) while (b > a) { int test = *(--b); __asm push test }
所以基本上我必须替换语句
__asm push test
我面临的问题是:
我无法找到同一个推送语句的 pop 语句
我无法调试项目,因为项目的输出是一个 lib 文件。
我尝试使用堆栈、数组、队列,但没有成功。它不会引发任何编译错误,但是在启动应用程序时会崩溃。
所以我的问题是:
我可以调试任何输出为 lib 文件的 C++ 项目吗?
我也在其他一些论坛上问过这个问题,有人告诉我尝试
va_list
但我无法理解va_list
将如何工作而不是__asm push test
?那么最后,如何用 C++ 替换这个 Asm 代码/如何替换这个 Asm 代码?
任何帮助将不胜感激,因为我长期以来一直被困在这个问题上。