Parasoft C++测试 - 编译内联汇编代码

4

我希望你能在Parasoft C++测试软件中编译并测试一个内嵌汇编代码的示例。

源代码:

#include <stdio.h>
void example()   { int arg1, arg2, add, sub, mul, quo, rem ;

 printf( "Enter two integer numbers : " );
 scanf( "%d%d", &arg1, &arg2 );


 __asm__ ( "addl %%ebx, %%eax;" : "=a" (add) : "a" (arg1) , "b" (arg2) );
 __asm__ ( "subl %%ebx, %%eax;" : "=a" (sub) : "a" (arg1) , "b" (arg2) );
 __asm__ ( "imull %%ebx, %%eax;" : "=a" (mul) : "a" (arg1) , "b" (arg2) );

 __asm__ ( "movl $0x0, %%edx;"
           "movl %2, %%eax;"
           "movl %3, %%ebx;"
            "idivl %%ebx;" : "=a" (quo), "=d" (rem) : "g" (arg1), "g" (arg2) );

 printf( "%d + %d = %d\n", arg1, arg2, add );
 printf( "%d - %d = %d\n", arg1, arg2, sub );
 printf( "%d * %d = %d\n", arg1, arg2, mul );
 printf( "%d / %d = %d\n", arg1, arg2, quo );
 printf( "%d %% %d = %d\n", arg1, arg2, rem );


 }

代码出现了错误。每个单词的错误如下:

The word 'ebx' is not correctly spelled.

我该怎么办?

1
请贴上代码,不要贴屏幕截图的片段。 - sjsam
@sjsam,源代码已添加。 - Mahsa ehsani
谢谢,我刚刚编辑了问题,删除了多余的图表。现在事情更清晰了。 - sjsam
我敢打赌,Parasoft软件正在拼写检查引用字符串。它没有意识到它们包含汇编指令,只是执行基本的英语语言拼写检查。 - David Wohlferd
抱歉,我不知道。我懂gcc的内联汇编,但从未使用过parasoft。我的拼写检查猜测只是一个猜测,但似乎很合理。 - David Wohlferd
显示剩余2条评论
1个回答

1
很可能这不是Parasoft C++test本身检测到的错误,而是你从Eclipse CDT IDE(代码编辑器)得到的提示。你可能正在使用Parasoft C++test作为Eclipse插件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接