当我用c++编写代码,并使用Visual Studio (微软编译器)进行编译时,生成的程序集对我的代码进行了一些优化。
我想创建一个程序,用于学习(或教授他人),获取c++代码,编译它,然后将优化后的代码转换回c++以显示优化的内容(通过diff程序)。
这个是可能的吗?如果是这样的话,是怎么做的?
我有以下C++代码
int myFuncSum( int a, int b)
{
int c;
c = a + b;
return c;
}
int main(int argc, char *argv[])
{
int result;
result = myFuncSum(100, 200);
return 0;
}
当我在我的Win7 Pro机器上的Visual 2008的反汇编窗口中执行此操作时,我会看到对myFuncSum()的调用如下:
int myFuncSum( int a, int b)
{
001C1000 push
如何使用Visual Studio编译汇编代码?
我想用编译并运行一个汇编源文件。
我已经创建了一个Visual C++项目,并在文件code.asm中插入了一些汇编代码
.586 ;Target processor. Use instructions for Pentium class machines
.MODEL FLAT, C ;Use the flat memory model. Use C calling conventions
.STACK ;Define a stack segment of 1KB (Not requir
在访问特定位置的字符数组中的值时,我遇到了很多问题。我正在使用C++中的内联汇编和visual studio (如果这有任何帮助的话)。下面是我的代码:
char* addTwoStringNumbers(char *num1)
{
// here is what I have tried so far:
movzx eax, num1[3];
mov al, [eax]
}
当我调试时,我可以看到num13是我想要的值,但是我似乎不能使al或eax等于这个值,它似乎总是一些指针引用。我也玩过Byte PTR,但没有运气。
我对我所使用的调试器(Visual C++ & Bloodshed C++)的代码有问题,它只是跳过一行代码,或者应该输入的地方。代码如下:
for(x = 0; x < TASKLIMIT; ++x)
{
cout<<"Enter the name of a task: ";
getline(cin, task[x].name);
cout<<"Enter the priority of the task: ";
cin>>task[x].priority;
while