一个mips内联汇编的问题

发布于 2022-09-18 10:21:16 字数 1039 浏览 11 评论 0

我最近在做一个视频解码器,跑在mips上。代码中有一个求绝对值的函数,调用很频繁,我就把他改写成了内敛汇编以提高解码器性能。可是将改后的汇编函数放到程序里发现解出来的图像和修改之前的不一样。先把汇编函数贴出来:
int
abs(int iNum)
{
        asm volatile (
                "nor $2,$0,%1\n\t"
                "addiu $2,$2,1\n\t"
                "slti $3,%1,0\n\t"
                "movz %0,$2,$3\n\t"
                :"=r"(iNum)
                :"0"(iNum)
                :"$2","$3");
        return iNum;
}
我觉得这个函数没错!!难道这段代码会对c代码有影响吗?另外,我想知道,在调用这个函数之前对它的参数进行强制类型转换后会不会影响这段代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文