汇编MIPS指令集 add两数相加、syscall输出字符串、bgt分支语句、ble循环语句
关于伪指令与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循环语句相关推荐
- [Swift]LeetCode2. 两数相加 | Add Two Numbers
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- leetcode算法—两数相加 Add Two Numbers
关注微信公众号:CodingTechWork,一起学习进步. 题目 Add Two Numbers: You are given two non-empty linked lists represen ...
- LeetCode第二题:两数相加(Add Two Numbers)
LeetCode第二题:两数相加(python,java) You are given two non-empty linked lists representing two non-negative ...
- 【LeetCode】2.两数相加
1.两数相加 一.问题描述 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表 ...
- 不用加减乘除完成两数相加
看了剑指offer一书的一个题目,然后自己写了的代码,有迭代和递归两种方式,代码如下: 1 #include <stdio.h> 2 3 int add(int a, int b) //迭 ...
- -9 逆序输出一个整数的各位数字_leetcode两数相加(大整数相加)
题目来源于leetcode第二题两数相加. 题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果,我们将这两个数相 ...
- LeetCode题库整理【Java】—— 2 两数相加
LeetCode题库整理[Java] 2.两数相加 题目:给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果, ...
- leetcode题库:2.两数相加
给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...
- LeetCode2.两数相加
LeetCode2.两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会 ...
最新文章
- 清华团队将Transformer用到3D点云分割
- 解决ajax劫持,Ajax实现检测网站劫持的方法
- [:zh]<界面编程>任务二 用户注册界面设计[:]2018-01-24
- linux-3.4.2移植到FL2440上(一)--只是基本移植
- 实现python扩展的C API方法过程全纪录(windows)
- 我在WordCamp上学到的有关新WordPress Gutenberg编辑器的知识
- 苹果:2020全年App Store阻止了超15亿美元潜在诈骗交易
- 学校为什么要单位接收函_为什么要选择语言学校留学?
- [唐诗]诗(选二首)-王梵志
- linux 蓝牙测试程序下载,Linux下蓝牙测试软件包和命令介绍
- python什么为假_Python返回真假值(True or False)小技巧
- iPhone各种机型尺寸、屏幕分辨率
- 《Java程序员,上班那点事儿》荣登北京新华书店销售榜第2名
- 多核CPU的运行模式详解
- 从图森未来到通用、谷歌,自动驾驶怎么样了?
- WPF 创建秒表 计时器
- ps怎么做出发光抽象效果| 萧蕊冰
- 创造与魔法服务器维护后必刷鸟吗,创造与魔法云斑鹦鸟位置必刷点2020 刷新时间和地点介绍...
- CSS3自定义滚动条样式 -webkit-scrollbar
- html鼠标拖尾效果,前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画...
热门文章
- oracle ora-01001,ORA-01001 and ORACLE游标
- cmos逻辑门传输延迟时间_CMOS和TTL都有哪些区别?图腾柱电路又是什么,详情进来一瞧!...
- 深度学习项目-人群密度估计
- lua把userdata写入mysql_Lua教程(十九):userdata
- mysql协议重传_TCP协议详解
- SSDT表的遍历(源码)
- delphi中的ParamStr
- 安全编程: 防止缓冲区溢出
- 如何用ARP欺骗来嗅探主机流量
- Better Video Better Audio 的时代已经过去了吗?