关于伪指令与mips指令的区别:

MIPS标准定义cpu指令集的同时也定义了伪指令,伪指令可以使汇编语言可读性更好,更容易维护。每条伪指令都有对应的mips指令。汇编器负责将伪指令翻译成正式的mips指令。

伪指令的功能定义,可以在MARS->Help->Extended (pseudo) Instructions中查看

第一个程序: li add 指令的使用

功能:两数相加

运行效果

第二个程序:li la syscall指令的使用 程序的分段

功能:输出Hello World

运行结果:在run I/O中输出了Hello World

第三个程序 bgt分支语句

功能:
用户输入两个数字a,b
如果a>b,则输出yes
否自输出no

C语言代码

对应的汇编代码

以下可复制

#C program code
#   scanf("%d",&t0);
#   scanf("%d",&t1);
#   if(to>t1)printf("YES");
#   else printf("NO");#assemble code
.datamsg_yes: .ascii"YES\0"msg_no: .ascii"NO\0"
.text#input t0li $v0,5  #syscall read a num from I/O when v0=5syscall      #user input saved to v0move $t0,$v0 #save v0 num to t0#input t1li $v0,5 #syscall read a num from I/O when v0=5syscall      #user input saved to v0move $t1,$v0 #save v0 num to t1#branch greater thanbgt $t0,$t1,sub1  #if t0>t1, goto sub1, else goto next line#elsela $a0,msg_no      #print NOli $v0,4syscallli $v0,10       #exit programsyscall#if
sub1:   la $a0,msg_yes      #print YESli $v0,4syscall

运行结果

输入

4
5

输出

NO

输入

100
50

输出

YES


第四个程序 ble循环语句

功能:计算1+2+3+...+100

C语言代码

汇编语言代码

以下可复制

 li $t0,1        #t0:looptimes(1~100)li $t1,0        #t1:sum
loop:   add $t1,$t1,$t0     #t1=t1+t0add $t0,$t0,1        #t0=t0+1#branch less equalble $t0,100,loop    #if t0<=100, goto loop#outputmove $a0,$t1       #when v0=1, syscall print a0li $v0,1syscall

运行结果

输出为:5050

汇编MIPS指令集 add两数相加、syscall输出字符串、bgt分支语句、ble循环语句相关推荐

  1. [Swift]LeetCode2. 两数相加 | Add Two Numbers

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. leetcode算法—两数相加 Add Two Numbers

    关注微信公众号:CodingTechWork,一起学习进步. 题目 Add Two Numbers: You are given two non-empty linked lists represen ...

  3. LeetCode第二题:两数相加(Add Two Numbers)

    LeetCode第二题:两数相加(python,java) You are given two non-empty linked lists representing two non-negative ...

  4. 【LeetCode】2.两数相加

    1.两数相加 一.问题描述 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表 ...

  5. 不用加减乘除完成两数相加

    看了剑指offer一书的一个题目,然后自己写了的代码,有迭代和递归两种方式,代码如下: 1 #include <stdio.h> 2 3 int add(int a, int b) //迭 ...

  6. -9 逆序输出一个整数的各位数字_leetcode两数相加(大整数相加)

    题目来源于leetcode第二题两数相加. 题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果,我们将这两个数相 ...

  7. LeetCode题库整理【Java】—— 2 两数相加

    LeetCode题库整理[Java] 2.两数相加 题目:给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果, ...

  8. leetcode题库:2.两数相加

    给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...

  9. LeetCode2.两数相加

    LeetCode2.两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会 ...

最新文章

  1. 清华团队将Transformer用到3D点云分割
  2. 解决ajax劫持,Ajax实现检测网站劫持的方法
  3. [:zh]<界面编程>任务二 用户注册界面设计[:]2018-01-24
  4. linux-3.4.2移植到FL2440上(一)--只是基本移植
  5. 实现python扩展的C API方法过程全纪录(windows)
  6. 我在WordCamp上学到的有关新WordPress Gutenberg编辑器的知识
  7. 苹果:2020全年App Store阻止了超15亿美元潜在诈骗交易
  8. 学校为什么要单位接收函_为什么要选择语言学校留学?
  9. [唐诗]诗(选二首)-王梵志
  10. linux 蓝牙测试程序下载,Linux下蓝牙测试软件包和命令介绍
  11. python什么为假_Python返回真假值(True or False)小技巧
  12. iPhone各种机型尺寸、屏幕分辨率
  13. 《Java程序员,上班那点事儿》荣登北京新华书店销售榜第2名
  14. 多核CPU的运行模式详解
  15. 从图森未来到通用、谷歌,自动驾驶怎么样了?
  16. WPF 创建秒表 计时器
  17. ps怎么做出发光抽象效果| 萧蕊冰
  18. 创造与魔法服务器维护后必刷鸟吗,创造与魔法云斑鹦鸟位置必刷点2020 刷新时间和地点介绍...
  19. CSS3自定义滚动条样式 -webkit-scrollbar
  20. html鼠标拖尾效果,前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画...

热门文章

  1. oracle ora-01001,ORA-01001 and ORACLE游标
  2. cmos逻辑门传输延迟时间_CMOS和TTL都有哪些区别?图腾柱电路又是什么,详情进来一瞧!...
  3. 深度学习项目-人群密度估计
  4. lua把userdata写入mysql_Lua教程(十九):userdata
  5. mysql协议重传_TCP协议详解
  6. SSDT表的遍历(源码)
  7. delphi中的ParamStr
  8. 安全编程: 防止缓冲区溢出
  9. 如何用ARP欺骗来嗅探主机流量
  10. Better Video Better Audio 的时代已经过去了吗?