有人能把这些C代码翻译成mips汇编代码吗

有人能把这些C代码翻译成mips汇编代码吗,c,mips,C,Mips,//请将这些C代码转移到Mips程序集中, //我需要在mips汇编中执行此操作,但在执行数组时遇到问题 #include <stdio.h> #include <string.h> int main(int argc, const char * argv[]) { char str[100]; printf("Input the string: "); scanf("%s", str); int size = (int)strlen(

//请将这些C代码转移到Mips程序集中, //我需要在mips汇编中执行此操作,但在执行数组时遇到问题

#include <stdio.h>

#include <string.h>

int main(int argc, const char * argv[])
{
    char str[100];
    printf("Input the string: ");
    scanf("%s", str);
    int size = (int)strlen(str);
    for(int i = 0; i < size + 2; i++)
    {
        printf("*");
    }
    printf("\n");
    printf("*%s*\n", str);
    for(int i = 0; i < size + 2; i++)
    {
        printf("*");
    }
    printf("\n");
    return 0;
}
#包括
#包括
int main(int argc,const char*argv[]
{
char-str[100];
printf(“输入字符串:”);
scanf(“%s”,str);
int size=(int)strlen(str);
对于(int i=0;i
//谢谢

您可以使用此c到Mips转换组件。以下是我们应该做的工作

.file   1 ""
    .section .mdebug.abi32
    .previous
    .gnu_attribute 4, 1
    .abicalls
    .rdata
    .align  2
$LC0:
    .ascii  "Input the string: \000"
    .align  2
$LC1:
    .ascii  "%s\000"
    .align  2
$LC2:
    .ascii  "*%s*\012\000"
    .text
    .align  2
    .globl  main
$LFB0 = .
    .set    nomips16
    .ent    main
    .type   main, @function
main:
    .frame  $fp,144,$31     # vars= 112, regs= 2/0, args= 16, gp= 8
    .mask   0xc0000000,-4
    .fmask  0x00000000,0
    .set    noreorder
    .cpload $25
    .set    nomacro

    addiu   $sp,$sp,-144
$LCFI0:
    sw  $31,140($sp)
$LCFI1:
    sw  $fp,136($sp)
    movz    $31,$31,$0
$LCFI2:
    move    $fp,$sp
$LCFI3:
    .cprestore  16
    sw  $4,144($fp)
    sw  $5,148($fp)
    lw  $2,%got($LC0)($28)
    nop
    addiu   $4,$2,%lo($LC0)
    lw  $2,%call16(printf)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    addiu   $2,$fp,36
    lw  $3,%got($LC1)($28)
    nop
    addiu   $4,$3,%lo($LC1)
    move    $5,$2
    lw  $2,%call16(scanf)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    addiu   $2,$fp,36
    move    $4,$2
    lw  $2,%call16(strlen)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    sw  $2,32($fp)
    sw  $0,28($fp)
    b   $L2
    nop

$L3:
    li  $4,42           # 0x2a
    lw  $2,%call16(putchar)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    lw  $2,28($fp)
    nop
    addiu   $2,$2,1
    sw  $2,28($fp)
$L2:
    lw  $2,32($fp)
    nop
    addiu   $3,$2,2
    lw  $2,28($fp)
    nop
    slt $2,$2,$3
    andi    $2,$2,0x00ff
    bne $2,$0,$L3
    nop

    li  $4,10           # 0xa
    lw  $2,%call16(putchar)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    addiu   $2,$fp,36
    lw  $3,%got($LC2)($28)
    nop
    addiu   $4,$3,%lo($LC2)
    move    $5,$2
    lw  $2,%call16(printf)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    sw  $0,24($fp)
    b   $L4
    nop

$L5:
    li  $4,42           # 0x2a
    lw  $2,%call16(putchar)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    lw  $2,24($fp)
    nop
    addiu   $2,$2,1
    sw  $2,24($fp)
$L4:
    lw  $2,32($fp)
    nop
    addiu   $3,$2,2
    lw  $2,24($fp)
    nop
    slt $2,$2,$3
    andi    $2,$2,0x00ff
    bne $2,$0,$L5
    nop

    li  $4,10           # 0xa
    lw  $2,%call16(putchar)($28)
    nop
    move    $25,$2
    jalr    $25
    nop

    lw  $28,16($fp)
    move    $2,$0
    move    $sp,$fp
    lw  $31,140($sp)
    lw  $fp,136($sp)
    addiu   $sp,$sp,144
    j   $31
    nop

    .set    macro
    .set    reorder
    .end    main
$LFE0:
    .size   main, .-main
    .section    .eh_frame,"aw",@progbits
$Lframe1:
    .4byte  $LECIE1-$LSCIE1
$LSCIE1:
    .4byte  0x0
    .byte   0x1
    .globl  __gxx_personality_v0
    .ascii  "zP\000"
    .uleb128 0x1
    .sleb128 -4
    .byte   0x1f
    .uleb128 0x5
    .byte   0x0
    .4byte  __gxx_personality_v0
    .byte   0xc
    .uleb128 0x1d
    .uleb128 0x0
    .align  2
$LECIE1:
$LSFDE1:
    .4byte  $LEFDE1-$LASFDE1
$LASFDE1:
    .4byte  $LASFDE1-$Lframe1
    .4byte  $LFB0
    .4byte  $LFE0-$LFB0
    .uleb128 0x0
    .byte   0x4
    .4byte  $LCFI0-$LFB0
    .byte   0xe
    .uleb128 0x90
    .byte   0x4
    .4byte  $LCFI2-$LCFI0
    .byte   0x11
    .uleb128 0x1e
    .sleb128 2
    .byte   0x11
    .uleb128 0x1f
    .sleb128 1
    .byte   0x4
    .4byte  $LCFI3-$LCFI2
    .byte   0xd
    .uleb128 0x1e
    .align  2
$LEFDE1:
    .ident  "GCC: (Debian 4.4.5-8) 4.4.5"

我听说有futuretech项目可以构建将C代码转换为汇编代码的工具,但我不确定这些工具是否超出了理论研究的范围。我不认为有人愿意为你做功课,但这将->这里有一个链接,显示了mips gcc,如果你需要的只是mips中的数组帮助,你可以问Google,也许会得到以下链接:该目录中有更多的注释。一般来说,C编译器会在编译过程中发出一个程序集列表,如果需要的话。所以,如果你有一个用于MIPS的C编译器,看看你是不是这样做的。