【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; ...
随机推荐
- 解决SSH免密登录配置成功后不生效问题
今天配置SSH免密登录时,使用 ssh-keygen 命令成功生成了公钥和私钥,并且也执行了 ssh-copy-id 机器地址 将公钥添加到了服务器的authorized_keys文件中.紧接着用 s ...
- Ubuntu下安装make
方法一:(自动安装) 1.进入root权限:su root 2.更新安装列表:apt-get update 3.安装make:apt-get install ubuntu-make 方法二:(手动安装 ...
- Knife4j文档请求异常 app.23f8b31d.js:1 SyntaxError: Unexpected token I in JSON at position 6820
发现代码里example包含了特殊字符[] 去掉[]即可 @ApiModelProperty(value = "状态", example = "INIT, RUNNING ...
- Qt编写物联网管理平台43-告警短信转发
一.前言 系统在运行过程中,会实时采集设备的数据,当采集到的数据发生报警后,可以将报警信息以短信的形式发送给指定的管理员(可以是多个),这样管理员就算不在现场,也能第一时间知道哪里发生了报警,可以紧急 ...
- 部署kubernetes-dashboard改成http免密登录
原始链接地址 https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 修改S ...
- 多语言越狱很棒!😊MULTILINGUAL JAILBREAK CHALLENGES IN🧜♀️LARGE LANGUAGE MODELS
写这篇的时候第一次认识到了附录内容的重要性(bushi只是这篇读了全部的附录),它可以让你明确文章全部的实验,并且其中包含很多辅助你对正文理解的表格 禁止盗用,侵权必究!!!欢迎大家积极举报
- g2o编译出现的问题及解决办法 By not providing "FindG2O.cmake" in CMAKE_MODULE_PATH this project has
在安装完该g2o之后 运行一些程序 如高翔的ch6 代码会出现如下错误: CMake Warning at CMakeLists.txt:10 (FIND_PACKAGE): By not provi ...
- SpringBoot集成swagger后出现: Failed to start bean ‘documentationPluginsBootstrapper‘的解决方法
SpringBoot集成swagger后出现: Failed to start bean 'documentationPluginsBootstrapper'的编译错误: org.springfram ...
- Python连接远程设备
import paramiko def content_ssh(): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(parami ...
- python SQLAlchemy ORM——从零开始学习03 如何针对数据库信息进行排序
03 如何进行排序 3-1准备工作: 因为要排序,所以需要随机多谢数据,model见后文.也需要random进行随机 from model import User, Engine from sqlal ...