MIPS汇编语言学习-01-两数求和以及环境配置、如何运行
一、个人理解
汇编语言是一类语言的统称,可以细分为: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-两数求和以及环境配置、如何运行相关推荐
- MIPS汇编语言学习-03-循环
一.前言 如何在电脑上运行MIPS汇编语言,这边不做赘述,请查阅之前的博客链接,里面有相关的安装包和运行方法:MIPS汇编语言学习-01-两数求和 二.源码 #功能实现: #实现1累加到10000,最 ...
- MIPS汇编语言学习笔记07:打印双精度浮点数
课程原视频: https://www.bilibili.com/video/BV19J411y7pA?p=7 程序功能: 设定两个双精度浮点型数据,将其相加后打印输出. 代码: .datamyDoub ...
- MIPS汇编语言学习笔记23:if 语句分支指令
C语言 #include<stdio.h> int main() {int i = 3;if (i < 5){printf("yes!\n");}else{pri ...
- MIPS汇编语言学习笔记11:整数减法 (mult方法)
任务:整数相乘,并输出打印. 代码: .dataintA: .word 5intB: .word 2 .textli $v0, 1lw $a1, intAlw $a2, intBmult $a1, $ ...
- 【youcans 的图像处理学习课】1. 安装与环境配置
专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 [youcans 的图像处理学习课]1. 安装与环境配置 1. OpenCV 计算机视觉库 ...
- AutoGLuon学习笔记(一):环境配置与API初识
AutoGLuon学习笔记(一):环境配置与API初识 环境配置 CUDA安装 Autogluon安装 图片分类 数据集导入和处理 拟合模型 预测新图片 测试集准确率 保存模型 超参数优化 模型范围设 ...
- 用c语言写一个求和的程序,C语言实现两数求和
能够使一个正确的C语言程序执行的必要顺序:上机输入与编辑源程序(.c)-->对源程序进行编译(.obj),得到目标函数-->将目标程序 与库函数链接,得到可执行的目标程序(.exe)--& ...
- LeetCode 01两数之和02两数相加
力扣 LeetCode01两数之和 LeetCode02两数之加 前言:第一次LeetCode打卡题解,前面组织的打卡活动从今天开始正式开始了,很多csdn和公众号小伙伴以及加入了,欢迎加入!详细看力 ...
- python两数求和_Python两数相加实现
题目要求: 思路: 遍历第一个与第二个链表,把相同位置的相加 设置一个flag,用来标记相加后大于10的部分,下一位再相加时,就要加上flag的值 遍历至一个链表结束 如果此时flag不为0,把未结束 ...
最新文章
- 支付宝服务商子商户_支付宝服务商新功能,无需商家花钱的消费券怎么参与
- Ubuntu下设置电信拨号上网(10.04版)
- 【问链财经-区块链基础知识系列】 第三十三课 区块链溯源方案设计-中检集团区块链溯源平台
- C++ primer 第10章 泛型算法
- 用python数据分析excel多地天气_Python实现天气查询功能(外加Excel技巧)
- 容器编排技术 -- Kubernetes 组件
- dcloud会员激活mui
- CentOS7 NTP server + keepalived
- AMD Fusion 开发者峰会透漏的信息
- Vue-条件判断与循环遍历
- 天眼查是怎么获得企业工商信息的?
- Quirks(怪癖)模式是什么?它和Standards(标准)模式有什么区别
- 微信小程序之猜拳游戏
- HTML+CSS学习笔记(篇幅较大)
- 当初的愿望实现了么?
- c++ 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。
- 计算机课gif,信息技术五年级下册第7课 认识GIF动画教学设计及反思
- 关于onMeasure(转载)
- 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校副教授Dan Zhang:基于线性规划的近似动态规划方面的一些最新成果...
- 梅科尔工作室-Django保姆教程-1