MIPS汇编语言学习笔记27:数组
原视频课
国外最火MIPS汇编语言学习视频,有翻译字幕,方便学习_哔哩哔哩_bilibili
代码
space数据类型:#.space 12 代表给变量分配12个字节空间,即12字节。如果我们想存储三个整数,一个整数占用4字节,那么一共就需要4 x 3 = 12个字节空间。
.dataArray: .space 12 # 一个整数4字节,共三个整数
.textmain:# save to registeraddi $s0, $zero, 2addi $s1, $zero, 4addi $s2, $zero, 6# register to memoryaddi $t0, $zero, 0sw $s0, Array($t0)addi $t0, $t0, 4sw $s1, Array($t0)addi $t0, $t0, 4sw $s2, Array($t0)
讲解:
前几步都是常规操作,将立即数2 4 6分别存入CPU的s0 s1 s2寄存器中。
接下来执行sw指令,其中会被拆分为lui addu sw指令
- lui指令将Array的内存地址取出,放置在1号寄存器的高16位上,现在1号寄存器的值为0x10010000。
- 将1号寄存器与8号寄存器的值相加,存入到1 号寄存器当中。
- 将16号寄存器(即s0寄存器)中的值存入基地址(0x00000000)偏移0x10010000后的值为地址的内存中。
如图:
后面,我们将t0寄存器的值每次+4,就可以以4字节为刻度,循环挨个读取三个整数并存取到内存中了。
关于数组在内存中的存储可以参考这篇文章:结构体名是不是结构体的首地址? - 高志远的个人主页
最终效果:
MIPS汇编语言学习笔记27:数组相关推荐
- MIPS汇编语言学习笔记23:if 语句分支指令
C语言 #include<stdio.h> int main() {int i = 3;if (i < 5){printf("yes!\n");}else{pri ...
- MIPS汇编语言学习笔记07:打印双精度浮点数
课程原视频: https://www.bilibili.com/video/BV19J411y7pA?p=7 程序功能: 设定两个双精度浮点型数据,将其相加后打印输出. 代码: .datamyDoub ...
- MIPS汇编语言学习笔记11:整数减法 (mult方法)
任务:整数相乘,并输出打印. 代码: .dataintA: .word 5intB: .word 2 .textli $v0, 1lw $a1, intAlw $a2, intBmult $a1, $ ...
- 32位汇编语言学习笔记(45)--测试简单文件操作接口(完)
这是<Assembly Language step by step programming with linux>书中的最后一个程序,也是全书中的最复杂的一个程序. 首先看一下这个程 ...
- MIPS体系结构学习笔记
MIPS体系结构学习笔记 第一章 概述 第二章 MIPS的体系结构 相关寄存器的时序 32个通用寄存器 通用寄存器的命名 32个浮点寄存器 基本地址空间 第三章 协处理器0(cp0):MIPS处理器控 ...
- win32汇编语言学习笔记(三)
汇编语言学习笔记(三) CH3.Windows汇编基础 .386 .model flat,stdcall option casemap:none 定义程序使用的指令集.工作模式 相应的还有:.8086 ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- Java中大数据数组,Java基础学习笔记之数组详解
摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...
- MIPS架构学习笔记
MIPS架构学习笔记 来源: ChinaUnix博客 日期: 2007.03.13 23:18 (共有条评论) 我要评论 MIPS架构学习笔记 ...
- MIPS汇编语言学习-03-循环
一.前言 如何在电脑上运行MIPS汇编语言,这边不做赘述,请查阅之前的博客链接,里面有相关的安装包和运行方法:MIPS汇编语言学习-01-两数求和 二.源码 #功能实现: #实现1累加到10000,最 ...
最新文章
- poj1738 an old stone game
- python第三方库有哪些常用的、请列举15个-阿里巴巴Python开发工程师面试题
- 如何使用AWS和Azure的配置存储服务保存读取配置
- Delphi XE2 之 FireMonkey 入门(13) - 动画(下)
- 一文讲清,MySQL如何解决多事务并发问题
- android 简单获取实时天气数据_绘图本身很简单但是获取数据很难
- 利用POI 技术动态替换word模板内容
- CCF NOI1098 森林
- 摆脱Wi-Fi信号干扰的对策
- R语言︱用excel VBA把xlsx批量转化为csv格式
- BackgroundWorker的使用
- 分库分表 vs NewSQL,怎么选择?
- LightGBM-GBDT-LR使用树集合进行特征转换
- Win10值得推荐的软件,提升效率和桌面美观
- Matlab 线性同余法产生随机数
- T1-商贸宝服务无法启动解决办法
- CTF简单的文件修复
- 大厂Offer拿到手软啊!隔壁都馋哭了
- iOS 工作中遇到的问题(面试重点)
- 下载图片 getInputStream、available()问题