一、个人理解

汇编语言是一类语言的统称,可以细分为:X86,ARM,MIPS等,这一类语言的可移植性相较于C、Python、Java较差,因为每一款类型的Cpu对应的指令集都不同,都我们需要单独去学习。

二、MIPS模拟器下载地址

(1)百度云盘

链接:https://pan.baidu.com/s/1qCmW0XERz2XxsbzEd2vxMw
提取码:nddi

(2)官网下载

MARS-MIPS官网

三、如何使用MARS

(1)安装

安装JDK,我这边的安装的版本为:java version “1.8.0_331”,JDK安装的具体方法大家可以上网搜索一下,这里不多赘述。

(2)运行MARS

双击即可。

(3)实际效果

四、源码

mips-Sum.asm

li $t1 ,1
li $t2 ,2
add $t0 ,$t2 ,$t1
move $a0 ,$t0
li $v0 ,1
#$vo 1:Int 4:String
#print $a0
syscall

#号为注释

五、代码解释

大家安装完应该可以看到右边的一个寄存器列表

(1)注意事项

存储数值类型时,我们需要用到$t0至$t7。
需要打印数据时,我们需要注意以下几点:

(1)$vo 为1时是打印Int类型数据 ,为4时打印String类型数据。
(2)打印函数只打印$a0中的数据。

(2)语法解释

li $t1 ,1
li $t2 ,2

li是把数据1,2分别放到寄存器$t1、$t2中。

add $t0 ,$t2 ,$t1

add是把寄存器$t1、$t2中的数据加和存放到$t0中。

move $a0 ,$t0

move 方法是把$t0的数移动到$a0

li $v0 ,1

li是把数据1放到寄存器$v0中,为后续打印Int类型数据。

syscall

syscall 方法是打印$a0中的数据

六、运行代码

(1)点到Execute

(2)点Run->Assemble,再点Run I/0

(3)点逐步运行


现在第一行标黄,我们点逐步执行按钮。

现在第二行标黄,我们发现右边$t1变为16进制的1,我们继续点逐步执行按钮。

现在第三行标黄,我们发现右边$t2变为16进制的2,我们继续点逐步执行按钮。

现在第四行标黄,我们发现右边$t0变为16进制的3,它把$t2和$t1的值放到了$t0中,我们继续点逐步执行按钮。

现在第五行标黄,我们发现右边$a0变为16进制的3,我们继续点逐步执行按钮。

现在第六行标黄,我们发现右边$v0变为16进制的1,我们继续点逐步执行按钮。

控制台打印出了3。

MIPS汇编语言学习-01-两数求和以及环境配置、如何运行相关推荐

  1. MIPS汇编语言学习-03-循环

    一.前言 如何在电脑上运行MIPS汇编语言,这边不做赘述,请查阅之前的博客链接,里面有相关的安装包和运行方法:MIPS汇编语言学习-01-两数求和 二.源码 #功能实现: #实现1累加到10000,最 ...

  2. MIPS汇编语言学习笔记07:打印双精度浮点数

    课程原视频: https://www.bilibili.com/video/BV19J411y7pA?p=7 程序功能: 设定两个双精度浮点型数据,将其相加后打印输出. 代码: .datamyDoub ...

  3. MIPS汇编语言学习笔记23:if 语句分支指令

    C语言 #include<stdio.h> int main() {int i = 3;if (i < 5){printf("yes!\n");}else{pri ...

  4. MIPS汇编语言学习笔记11:整数减法 (mult方法)

    任务:整数相乘,并输出打印. 代码: .dataintA: .word 5intB: .word 2 .textli $v0, 1lw $a1, intAlw $a2, intBmult $a1, $ ...

  5. 【youcans 的图像处理学习课】1. 安装与环境配置

    专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 [youcans 的图像处理学习课]1. 安装与环境配置 1. OpenCV 计算机视觉库 ...

  6. AutoGLuon学习笔记(一):环境配置与API初识

    AutoGLuon学习笔记(一):环境配置与API初识 环境配置 CUDA安装 Autogluon安装 图片分类 数据集导入和处理 拟合模型 预测新图片 测试集准确率 保存模型 超参数优化 模型范围设 ...

  7. 用c语言写一个求和的程序,C语言实现两数求和

    能够使一个正确的C语言程序执行的必要顺序:上机输入与编辑源程序(.c)-->对源程序进行编译(.obj),得到目标函数-->将目标程序 与库函数链接,得到可执行的目标程序(.exe)--& ...

  8. LeetCode 01两数之和02两数相加

    力扣 LeetCode01两数之和 LeetCode02两数之加 前言:第一次LeetCode打卡题解,前面组织的打卡活动从今天开始正式开始了,很多csdn和公众号小伙伴以及加入了,欢迎加入!详细看力 ...

  9. python两数求和_Python两数相加实现

    题目要求: 思路: 遍历第一个与第二个链表,把相同位置的相加 设置一个flag,用来标记相加后大于10的部分,下一位再相加时,就要加上flag的值 遍历至一个链表结束 如果此时flag不为0,把未结束 ...

最新文章

  1. 支付宝服务商子商户_支付宝服务商新功能,无需商家花钱的消费券怎么参与
  2. Ubuntu下设置电信拨号上网(10.04版)
  3. 【问链财经-区块链基础知识系列】 第三十三课 区块链溯源方案设计-中检集团区块链溯源平台
  4. C++ primer 第10章 泛型算法
  5. 用python数据分析excel多地天气_Python实现天气查询功能(外加Excel技巧)
  6. 容器编排技术 -- Kubernetes 组件
  7. dcloud会员激活mui
  8. CentOS7 NTP server + keepalived
  9. AMD Fusion 开发者峰会透漏的信息
  10. Vue-条件判断与循环遍历
  11. 天眼查是怎么获得企业工商信息的?
  12. Quirks(怪癖)模式是什么?它和Standards(标准)模式有什么区别
  13. 微信小程序之猜拳游戏
  14. HTML+CSS学习笔记(篇幅较大)
  15. 当初的愿望实现了么?
  16. c++ 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。
  17. 计算机课gif,信息技术五年级下册第7课 认识GIF动画教学设计及反思
  18. 关于onMeasure(转载)
  19. 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校副教授Dan Zhang:基于线性规划的近似动态规划方面的一些最新成果...
  20. 梅科尔工作室-Django保姆教程-1

热门文章

  1. 变频电源的输出滤波器的特点
  2. 网络安全(三 漏洞的抓取与挖掘)
  3. 一个迷失的IT工作者
  4. 软工第一次团队作业 - 采访!
  5. python 视频转场_Python 带你高效创作短视频
  6. 软件测试工程师自我介绍范文_软件测试面试自我介绍范文3篇
  7. 深度学习结合树搜索求解集装箱预翻箱问题
  8. Arduino 音乐代码
  9. 收到骗子的短信后......
  10. Dedecms建站详细流程