【MIPS】内存小端存储与MARS显示
1.小端存储方式:按字节逆序
以4Byte一个字为单位,其内按字节逆序排列
| 概念上-数据真值 | 机器码-内存存储 | Mars显示 | |||
| (+0) | (+1) | (+2) | (+3) | ||
| 0x12345678 | 0x78 | 0x56 | 0x34 | 0x12 | 0x12345678 |
| 0111_1000 | 0101_0110 | 0011_0100 | 0001_0010 | ||
| "Hell" | 'H' 0x48 |
'e' 0x65 |
'l' 0x6c |
'l' 0x6c |
"lleH" 0x6c6c6548 |
通过lb指令验证
MARS中内存显示:

通过lb将地址0x00000000 ~ 0x00000007的内容取出存入$t0 ~ $t7
li $t8, 0
lb $t0, 0($t8)
lb $t1, 1($t8)
lb $t2, 2($t8)
lb $t3, 3($t8)
lb $t4, 4($t8)
lb $t5, 5($t8)
lb $t6, 6($t8)
lb $t7, 7($t8)
产生的结果:

$t5的0xffffffff是lb指令特性:取出1Byte后将进行符号扩展至32位才能存入寄存器中
2.MARS显示:默认小端存储

MARS读取顺序
字符串与数字对比验证
如下声明:
.data
num: .word 0x12345678
msg: .asciiz "Hellow world"
查看内存(HEX显示)

查看内存(ASCII显示)

可见内存数据段中,0x12345678顺字节显示,而"Hell"逆字节显示

注意:逆序vs逆字节:
其他例证
.data 0x00001000
num: .byte 1,2,3,4,5,6,7,8
.text
li $a0, 0x00001000
lw $t0, 0($a0)

.byte指令:顺序将内容写入内存数据段,小端读取便是按字逆字节读取
【MIPS】内存小端存储与MARS显示的更多相关文章
- 小端存储(little Endian)大端存储(big Endian)
小端存储--低内存低字节 87654321 字节或半字节的最低位字节(Lowest Significant Bit,LSB)存放于内存最低位字节地址上.即最低地址存放的最低字节,为Power PC,I ...
- C语言--测试电脑存储模式(大端存储OR小端存储)
相信大家都知道大端存储和小端存储的概念,这在平时,我们一般不用考虑,但是,在某些场合,这些概念就显得很重要,比如,在 Socket 通信时,我们的电脑是小端存储模式,可是传送数据或者消息给对方电脑时, ...
- Python struct与小端存储
参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017685387246080 在使用Python 实现字符向字节数据类型转换的时候,P ...
- C++判断计算式是大端存储模式,还是小端存储模式
小端存储:数据的低字节存储在地址空间的低字节位,数据的高字节存储在地址空间的高字节位. 大端存储:数据的低字节存储在地址空间的高字节位,数据的高字节存储在地址空间的低字节位. 判断计算机是小端还是大端 ...
- C语言判断系统数据大/小端存储方式
小端存储:数据的低位部分,存储于存储器的低地址空间里. 大端存储:数据的低位部分,存储于存储器的高地址空间里. 首先,一般PC数据存储方式是小端存储. 基本实现思想是:将存储器中所存的数据按字节以地址 ...
- C++将整型数据转换成大端或小端存储顺序
大端和小端的概念参考之前博客: 大端/小端,高字节/低字节,高地址/低地址,移位运算 昨晚帮导师从指令中恢复图像的时候,导师要我转换成raw格式,也就是记录图像像素的二进制序列,然后反复强调让我注意大 ...
- 汉的Unicode编码是6C49,而且通常都是小端存储。汉字的unicode范围是:0x4E00~0x9FA5,即CJK一共20928个字符。GBK有21886个汉字,所以多了958个汉字
小端存储的结果是 49 6C UTF-8有点类似于Haffman编码,它将Unicode编码为:0x00-0x7F的字符,用单个字节来表示:0x80-0x7FF的字符用两个字节表示:0x800-0xF ...
- 小端存储转大端存储 & 大端存储转小端存储
1.socket编程常用的相关函数:htons.htonl.ntohs.ntohl h:host n:network s:string l:long 2.基本数据类型,2字节,4字 ...
- Windows 小端存储
小端->高高低低(高位存在高地址,低位存在低地址)
- 推断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式
第一个版本号: //return true in big-endian machines bool check_big_endian1() { int a = 0; int *p = &a; ...
随机推荐
- NoSuchAlgorithmException
今天在写UT时遇到了下面的问题: 1. 使用的powermock来处理static方法; 2. 静态方法里的却有使用到org.apache.http.client(4.3.1)的方法 异常如下: Ca ...
- Qt开发经验小技巧231-235
关于c++中继承多态virtual和override的几点总结. 子类可以直接使用基类中的protected下的变量和函数. 基类函数没加virtual,子类有相同函数,实现的是覆盖.用基类指针调用时 ...
- 使用Matlab进行图像分类
Classify images Instructions are in the task pane to the left. Complete and submit each task one at ...
- 数字世界中的纸张——理解 PDF (转载)
转载自 https://type.cyhsu.xyz/2018/09/understanding-pdf-the-digitalized-paper/ 引言 PDF 是我们打交道最多的文件格式之一.提 ...
- CF div3 995 (A~G)
期末周之第三把网瘾(真是越来越放肆了...).这次赛时了一把div 3 , 又一次只做出了A~E,写完E后剩下的题没时间看了(受了些寝室噪音的干扰,最后二十分钟才出).赛后看了下F和G,感觉也是一时半 ...
- Hadoop 概述(二)
shell定时上传linux日志信息到hdfs 从标题可以分析出来,我们要使用到shell,还要推送日志信息到hdfs上. 定义出上传的路径和临时路径,并配置好上传的log日志信息.这里我使用了上一节 ...
- 一个基于 Roslyn 和 AvalonEdit 的跨平台 C# 编辑器
前言 今天大姚给大家分享一个基于 Roslyn 和 AvalonEdit 开源.轻量.跨平台的 C# 编辑器:RoslynPad. Roslyn介绍 Roslyn是一个强大的.NET编译器实现,为C# ...
- VulNyx - Responder靶场
靶机ip 192.168.200.9 先nmap 扫描全端口 这个22端口不知道有没有开 被过滤了 我们 收集一下靶机的ipv6地址 nmap用ipv6地址扫他的端口就能绕过 他的端口过滤 ping6 ...
- 两种方式让你用Python轻松在RDKX5上部署推理
作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 宿主机环境:WSL2-Ubuntu22.04+Cuda12.6.D-Robotics-OE 1.2.8.Ubun ...
- [译] WinForms:分析一下(我用 Visual Basic 写的)
原文 | Klaus Loeffelmann 翻译 | 郑子铭 如果您从未看过电影<分析这一点>,下面是简短的介绍:假设一个纽约家族的成员有可疑的习惯,他决定认真考虑接受治疗以改善他的精神 ...