我试图将C程序转换为MIPS汇编程序。以下是该程序我的C代码:(注:灯泡[数字]是用于由用户输入的“数量”初始化为全零个值的数组)将C程序转换为MIPS汇编语言程序

for(int i = 1; i <= number; i++)

for(int j = 1; j <= number; j++)

if(j % i == 0)

Bulbs[j-1] = (Bulbs[j-1] + 1) % 2;

什么我到目前为止是如下:

li $t0, 0 #$t0 is set to 0 to be used as index for for loop1

li $t1, 0 #$t1 is set to 0 to be used as index for for loop2

li $s2, 4 #integer 4 is stored in s2

mult $s3, $s2 #input number($s3) is multiplied by 4

mflo $s4 #result of multiplication is stored in $s4

loop1:

bgt $t0, $s4, end_loop1 #if t$0 > $s4(input number*4), exit loop1,

#performing multiplication by 4 since word occupies 4 bytes

addi $t3, $t3, 1 #t3 is initialized to serve as "i" from for loop1

loop2:

bgt $t1, $s4, end_loop2 #if $t1 > (input number*4), exit loop2

addi $t4, $t4, 1 #t4 is initialized to serve as "j" from for loop2

div $t4, $t3

mfhi $t5 #$t4 % $t3 is stored in $t5

bne $t5, $zero, if_end #checking for if condition

if_end:

addi $t1, $t1, 4 #increment $t1 by 4 to move to next array element

j loop2 #jump back to top of loop2

end_loop2:

addi $t0, $t0, 4 #increment $t0 by 4

j loop1 #jump back to the top of loop1

end_loop1:

我想我的for循环实现的作品和我有,如果有条件的准确建立(纠正我,如果我错了),但我不知道我怎么能实现“灯泡[J- 1] =(灯泡[j-1] + 1)%2;'在我之后如果有条件的话。我是MIPS新手,希望得到任何帮助或反馈!

+4

“将C代码转换为汇编代码,是不是为* *编译器*工作? ;) –

+4

这个转换器被称为“编译器”,它比99.99%的人类转换器好得多 - 这里是你的代码; https://godbolt.org/g/CPZtob –

+0

嘿@ PeterJ_01,这很有意义。但是像$ LFB24 =这样的行呢。和$ LBB5 =。代表? –

C语言转MIPS汇编语言的方法,将C程序转换为MIPS汇编语言程序相关推荐

  1. java未知变量的类型_Java语言中类、变量及方法的声明 | 学步园

    类声明 [ public][ abstract][ final] class NameOfClass [ extends Super][ implements Interfaces] pubilc:声 ...

  2. 单片机c语言字符,单片机C语言中变量的定义方法解析

    描述 1.C语言中变量的定义方法 -C语言中变量定义语法为: #pragma rambank0 :即以关键词#pragma开始,rambank0指明资料区块为第0块. unsigned char m_ ...

  3. 汇编语言编写方法及程序分析

    汇编语言编写方法及程序分析   1.             汇编语言程序的编写方法 (1)       汇编语言源程序以.asm为其扩展名. (2)       汇编语言源程序的每一行都可以由4个部 ...

  4. C语言为什么不能移植,C语言有可移植性强和可读性好等优点,而汇编语言的高效、快速等优点又是C语言所难以达...

    51单片机是最早的单片机,也是在国内应用最广泛的单片机,为大家所喜爱!但执行速度较其它单片机较慢.因此在编程时更加要注重程序的执行效率及编程上的技巧处理,最大限度的发挥其性能,满足项目开发的实际需要. ...

  5. wave6000可以c语言编程吗,WAVE6000使用方法

    <WAVE6000使用方法>由会员分享,可在线阅读,更多相关<WAVE6000使用方法(21页珍藏版)>请在人人文库网上搜索. 1.任务3:使用WAVE6000,编写WAVE6 ...

  6. c语言移位运算的作用,C语言的移位操作符使用方法

    位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算.位移位运算符分为左移和右移两种,均为双目运算符.第一运算对象是移位对象,第二个运算对象是所移的二进制位数.以下是小编为大家搜索整理 ...

  7. 熟练掌握c语言后学习c++的方法,学习C语言的用途,C语言的学习方法

    一.C是基础的语言 C语言被广泛用于操作系统和编译器的开发 功能非常强 虽然现在不是最流行但是 最基础的东西是也比较好学的语言 如:金山的创始人江明 从30多岁开始学语言 学的就是C 对C的评价相当高 ...

  8. c语言作业 字符串替换,C语言字符串替换。解决方法

    当前位置:我的异常网» C语言 » C语言字符串替换.解决方法 C语言字符串替换.解决方法 www.myexceptions.net  网友分享于:2015-04-14  浏览:0次 C语言字符串替换 ...

  9. C语言估算数学常量e,c语言常量的正确表示方法有哪些

    c语言常量的正确表示方法有哪些 C语言中的数值常量可以简单的分为如下两种整型常量和浮点数常量: 一.整型常量 如6,27,-299 在 C 语言中,整型常量分为十进制整型常量.八进制整型常量和十六进制 ...

最新文章

  1. 极客新闻——19、如何从单体架构平滑过渡到微服务
  2. GB0-190 考试中的知识点分布
  3. Linux中date命令的各种实用方法--转载
  4. 部署Office Web Apps Server并配置其与SharePoint 2013的集成
  5. C语言的编译链接过程详解
  6. linux刷windows要重新校色吗,ThinkPad T470s 在 openSUSE KDE 桌面环境中安装显示器校色文件...
  7. linux相关(find/grep/awk/sed/rpm)
  8. java后台开发加密程序_Java后端实现MD5加密的方法
  9. 如何从Linux里面下载软件
  10. 如何打开电脑并打开浏览器
  11. html编辑个人信息页面,编辑个人信息.html
  12. 格林尼治时间与本地时间转换
  13. 2021最新微信影视小程序源码无限代开+搭建详细教程
  14. Oracle什么情况使用omf,ORACLE OMF介绍
  15. 4. 假设一年期定期利率为 3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
  16. 服务器被植入挖矿木马的心酸过程
  17. 软件评测师知识点7-11
  18. Unity一件替换所有字体Font
  19. Thinkphp最新打shang观看视频平台网站源码
  20. 免費螢幕錄影軟體CamStudio可錄製…

热门文章

  1. Git 原理安装和命令解析
  2. AWS 中文入门开发教学 25- 高可用性设计 - 建立 ALB 负载均衡
  3. Counterfactual VQA: A Cause-Effect Look at Language Bias
  4. mac远程桌面Microsoft Remote Desktop for Mac - Mac-连接Windows远程桌面
  5. 华为电脑wrtw29安装Linux,华为MateBook13WRT-W29对比苹果 MacBook Air
  6. 泛型模版类出现了LNK2019: 无法解析的外部符号错误
  7. 运营数据分析模型—用户分层分析
  8. Windows Server 2012 R2下补丁服务器部署与配置
  9. 数据库学习——基础概念
  10. HTML代码中的空格和空行