笑神552 2022-06-01 18:25 采纳率: 0%
浏览 52
已结题

汇编语言MIPS问题,简单

编写MIPS汇编程序Branch.arm,完成如下C语言代码相同的功能,要求A、B、C和Z必须是内存中的整型变量,程序运行过程中可以加载到寄存器,每次运行之前可以修改A、B、C的初始值,可以使用MIPS中与分支相关的伪指令使得比较和分支代码更简单。
C语言代码如下:
//Branch.c
int main( )
{
if(A>B || C<5)
Z=1;
else if(A==B)
Z=2;
else
Z=3;

switch(Z)
{case 1:
Z=-1;
break;
case 2:
Z=-2;
break;
default:
Z=0;
break;}
}

  • 写回答

1条回答 默认 最新

  • 歇歇 2022-06-08 01:58
    关注

    更新:用于替换lw $t5,A

    la $t1,A# load address of A into $t1
    lw  $t5,($t1)# load data A from address in $t1
    
    
    # file: Branch.arm
    # author: leezeeyee
    # date: 2020/12/6
    .data
    A: .word 25
    B: .word 15
    C: .word 5
    Z: .word 0
    .text
    main:
    lw  $t5,A# load data A in $t5
    lw $t6,B# load data B in $t6
    lw $t7,C# load data C in $t7
    lw $t8,Z# load data Z in $t8
    bgt $t5,$t6,L10#A>B
    blt $t7,5,L10#C<5
    j L110
    L10:
    li $t8,1#Z=1
    j L20
    L110:
    beq $t5,$t6,L11#A==B
    li $t8,3#Z=3#else
    j L20
    L11:
    li $t8,2#Z=2
    L20:
    beq $t8,1,L3#z==1
    j L4
    L3: 
    li $t8,-1#Z=-1
    j L7#break
    L4:
    beq $t8,2,L5#z==2
    j L6#default
    L5: 
    li $t8,-2#Z=-2
    j L7#break
    L6:
    li $t8,0#Z=0
    L7:
    sw $t8,Z
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 6月9日
  • 修改了问题 6月1日
  • 创建了问题 6月1日

悬赏问题

  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度
  • ¥25 主成分分析中的第一第二主成分分别代表哪些参数
  • ¥15 oracle数据库查询语句问题
  • ¥15 有没有c++绘制算法的佬们吗救孩一下
  • ¥15 android 蓝牙闪退
  • ¥15 绝缘子污秽comsol仿真参数
  • ¥15 labelme生成的json有乱码?