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显示的更多相关文章

  1. 小端存储(little Endian)大端存储(big Endian)

    小端存储--低内存低字节 87654321 字节或半字节的最低位字节(Lowest Significant Bit,LSB)存放于内存最低位字节地址上.即最低地址存放的最低字节,为Power PC,I ...

  2. C语言--测试电脑存储模式(大端存储OR小端存储)

    相信大家都知道大端存储和小端存储的概念,这在平时,我们一般不用考虑,但是,在某些场合,这些概念就显得很重要,比如,在 Socket 通信时,我们的电脑是小端存储模式,可是传送数据或者消息给对方电脑时, ...

  3. Python struct与小端存储

    参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017685387246080 在使用Python 实现字符向字节数据类型转换的时候,P ...

  4. C++判断计算式是大端存储模式,还是小端存储模式

    小端存储:数据的低字节存储在地址空间的低字节位,数据的高字节存储在地址空间的高字节位. 大端存储:数据的低字节存储在地址空间的高字节位,数据的高字节存储在地址空间的低字节位. 判断计算机是小端还是大端 ...

  5. C语言判断系统数据大/小端存储方式

    小端存储:数据的低位部分,存储于存储器的低地址空间里. 大端存储:数据的低位部分,存储于存储器的高地址空间里. 首先,一般PC数据存储方式是小端存储. 基本实现思想是:将存储器中所存的数据按字节以地址 ...

  6. C++将整型数据转换成大端或小端存储顺序

    大端和小端的概念参考之前博客: 大端/小端,高字节/低字节,高地址/低地址,移位运算 昨晚帮导师从指令中恢复图像的时候,导师要我转换成raw格式,也就是记录图像像素的二进制序列,然后反复强调让我注意大 ...

  7. 汉的Unicode编码是6C49,而且通常都是小端存储。汉字的unicode范围是:0x4E00~0x9FA5,即CJK一共20928个字符。GBK有21886个汉字,所以多了958个汉字

    小端存储的结果是 49 6C UTF-8有点类似于Haffman编码,它将Unicode编码为:0x00-0x7F的字符,用单个字节来表示:0x80-0x7FF的字符用两个字节表示:0x800-0xF ...

  8. 小端存储转大端存储 & 大端存储转小端存储

    1.socket编程常用的相关函数:htons.htonl.ntohs.ntohl h:host   n:network      s:string    l:long 2.基本数据类型,2字节,4字 ...

  9. Windows 小端存储

    小端->高高低低(高位存在高地址,低位存在低地址)

  10. 推断CPU 是小端存储(Little endian)还是大端存储(Big endian)模式

    第一个版本号: //return true in big-endian machines bool check_big_endian1() { int a = 0; int *p = &a; ...

随机推荐

  1. 创建LVM报错:Can't initialize physical volume "/dev/sdb1" of volume group "myvg" without -ff

    问题: 在使用fdisk /dev/sdb 删除原有LVM分区,在接着创建LVM新分区/dev/sdb1.完毕保存之后. 执行pvcreate /dev/sdb1出现报错 Can't initiali ...

  2. Ubuntu 下安装oh-my-zsh

    Ubuntu系统默认状况下的终端样式如下: Ubuntu default terminal's style 有个知名的神奇:Oh-My-Zsh 可以让终端及美观又实用: Oh-My-Zsh agnos ...

  3. CSV文件处理工具-CsvUtil

    介绍 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). Hutool针对此格式,参考 ...

  4. Anaconda中的Spyder软件设置为中文教程

     Anaconda中的Spyder软件设置为中文教程 第一步:工具栏中Tools --> Preferences 第二步:第二栏的 Application--> 第二个选项卡Advance ...

  5. Qt编写地图综合应用51-离线瓦片地图下载

    一.前言 写这个离线地图下载器的初衷,就是为了方便自己的几个需要离线地图的程序,客户需求,既然地图程序已经可以支持离线地图,那如何获取到这些离线瓦片地图文件是个关键,而且这是这个功能的关键,拿到这些一 ...

  6. 学习破解一个Android程序

    首先编写一个android测试程序 功能:校验用户名和注册码,成功则弹出注册成功提示 以下仅给出关键部分的代码 res/layout/activity_main.xml <?xml versio ...

  7. 11.15javaweb学习

  8. Rust远程加载shellcode

    学习rust, 练习写一个loader, 不足之处还请指教 编写 隐藏黑框 在注释掉所有打印语句后编译运行还是会弹黑框, 解决方法是头部添加一行(指定 Rust 编译器生成的可执行文件为 Window ...

  9. 前端学习openLayers配合vue3(加载线上数据源)

    现在我们学习一下加载网上的线上数据再加上点矢量图层,紧接着上一步 关键代码 layers: [ //瓦片图层source第三方,或者自带的,地图的底层 new TileLayer({ // sourc ...

  10. 通过WebView2获取HTTP-only cookie

    通过WebView2获取HTTP-only cookie可以使用`WebView2.CookieManager`类的方法.以下是一个示例代码,演示如何获取HTTP-only cookie: using ...