apple_50569014 2024-05-03 09:23 采纳率: 33.3%
浏览 6
已结题

DEV C++ 内联汇编代码编译通过无法运行

#include <stdio.h>


float find_range(float x,float y)
{
    __asm__("vmovaps %xmm1, %xmm0");


}
int main()
{
    printf("result = %f",find_range(0.1,0.2));
    return 0;
}
 

img

img

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-05-03 10:13
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这段代码的问题在于函数定义中的汇编代码语句不完整也不合法。 具体来说,vmovaps指令需要用到两个操作数,分别为目标和源操作数,但是这里只给出了一个源操作数%xmm1却没有指定目标操作数。另外,该函数定义缺少返回值,也不是完整的汇编指令序列,无法正确执行。 正确的函数定义应该有返回值类型和完整的汇编指令序列,例如:
    float find_range(float x, float y){
        float result;
        __asm__("movss %1, %0\n\t"
                "subss %2, %0"
                : "=x"(result)
                : "xm"(x), "xm"(y));
        return result;
    }
    

    这里使用了movss和subss指令,分别将x和y的值加载到寄存器中并进行浮点数减法运算,最后将结果放回寄存器并通过返回值返回。 另外,该代码中在main函数中调用了find_range函数并输出结果,这部分代码是正确的,可以保留不变。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 已采纳回答 5月3日
  • 修改了问题 5月3日
  • 创建了问题 5月3日

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题