您可以使用C代码生成BEQL MIPS指令吗?

发布于 2025-02-04 09:44:25 字数 1137 浏览 3 评论 0原文

因此,我在C中有此代码片段,

int unit_test_case08(int a, int b)
{
    int success = 1336;

    if(a != b)
    {
      success = 1337;
    }
    else
    {
      success = -1;
    }

    return success;
}

该代码段以MIPS转换为,

unit_test_case08:
        addiu   $sp,$sp,-24
        sw      $fp,20($sp)
        move    $fp,$sp
        sw      $4,24($fp)
        sw      $5,28($fp)
        sw      $6,32($fp)
        li      $2,1336           # 0x538
        sw      $2,8($fp)
        lw      $3,24($fp)
        lw      $2,28($fp)
        nop
        beq     $3,$2,$L2
        nop

        li      $2,1337           # 0x539
        sw      $2,8($fp)
        b       $L3
        nop

$L2:
        li      $2,-1                 # 0xffffffffffffffff
        sw      $2,8($fp)
$L3:
        lw      $2,8($fp)
        move    $sp,$fp
        lw      $fp,20($sp)
        addiu   $sp,$sp,24
        jr      $31
        nop

但是出于我的问题,我试图为我的仿真器创建一些测试用例,但是发现很难在C中生成一些代码,这会让我Beql而不是BEQ?

beq     $3,$2,$L2

如果可能的话,这个问题扩展到大多数“可能”。 我是MIP的新手。

我想学习如何在C中代码为BEQL而不是BEQ的测试用例。

So I have this code snippet in C

int unit_test_case08(int a, int b)
{
    int success = 1336;

    if(a != b)
    {
      success = 1337;
    }
    else
    {
      success = -1;
    }

    return success;
}

Which translates in MIPS to

unit_test_case08:
        addiu   $sp,$sp,-24
        sw      $fp,20($sp)
        move    $fp,$sp
        sw      $4,24($fp)
        sw      $5,28($fp)
        sw      $6,32($fp)
        li      $2,1336           # 0x538
        sw      $2,8($fp)
        lw      $3,24($fp)
        lw      $2,28($fp)
        nop
        beq     $3,$2,$L2
        nop

        li      $2,1337           # 0x539
        sw      $2,8($fp)
        b       $L3
        nop

$L2:
        li      $2,-1                 # 0xffffffffffffffff
        sw      $2,8($fp)
$L3:
        lw      $2,8($fp)
        move    $sp,$fp
        lw      $fp,20($sp)
        addiu   $sp,$sp,24
        jr      $31
        nop

But for my question, im trying to create some test cases for my emulator, but am finding it hard to generate some code in C that will get me BEQL instead of BEQ?

beq     $3,$2,$L2

This question extends to most of the "Likelys" if possible.
I am a very new to MIPS.

I would like to learn how to code a test case in C that would translate to BEQL instead of BEQ.

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

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

发布评论

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