首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MIPS架构深入理解2-MIPS架构体系

对于MIPS指令集架构描述最好的,肯定是MIPS公司出版的MIPS32和MIPS64架构规范。MIPS32是MIPS64的一个子集,用于描述具有32位通用目的寄存器的CPU。...为了简单,我们缩写为MIPS32/64。 生产MIPS架构CPU的公司,尽量兼容MIPS32/64规范。 在MIPS32/64规范之前,已经发布了多版的MIPS架构。...MIPS II: 为没有投产的MIPS-R6000机器定义的指令集。MIPS-II是MIPS32的前身。 MIPS III: 为R4000引入的64位指令集。...MIPS32、MIPS64: 1998年,由从Silicon Graphics公司分拆出来的MIPS Technologies Inc.公司制定的标准。...MIPS32是MIPS-II的超集,MIPS64是MIPS-IV的超集(还以可选的方式包含了MIPS-V的大部分)。 大多数1999年之后设计的MIPS架构CPU都兼容这些标准。

5.6K20

从一道mips题目学习搭建mips环境及ROP

本文以一道简单的mips pwn题,讲解mips环境搭建及mips ROP的构造。...32位的;LSB表示是小端,如果是MSB则表示大端;MIPS32 version 1 (SYSV)表示MIPS的版本,MIPS版本有MIPS32/64、MIPS I到V等等;题目是动态链接的,所以我们需要对应的动态链接库...直接运行程序是运行不起来的,这是因为mips架构的elf文件需要在mips环境中才能运行,而且还需要相应的动态链接库。所以下面我们来一起搭建mips环境。要注意题目是什么环境,搭建的就得是什么环境。...mips $ sudo ifconfig ens33 down mips $ sudo brctl addbr virbr0 mips $ sudo brctl addif virbr0 ens33...mips $ sudo brctl stp virbr0 off mips $ sudo brctl setfd virbr0 1 mips $ sudo brctl sethello virbr0

2.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

MIPS架构深入理解1-MIPS和RISC架构体系介绍

MIPS领域最无法忽视的贡献者是Stanford大学的MIPS项目。...1.2 MIPS架构5级流水线 图1.2: MIPS-5级流水线 MIPS本身就是基于流水线优化设计的架构,所以,将MIPS指令分为5个阶段,每个阶段占用固定的时间,在此,固定的时间其实就是处理器的时钟周期...(MIPS架构的汇编也是最简单易懂的代码之一) 尽管有这些问题,但是MIPS架构的设计者也在思考,如何使CPU可以被编译器更加简单高效地优化。...1.4 MIPS架构的发展 纵观MIPS架构的近40年的发展历程,虽经历过辉煌,但现在也日渐式微。网上有许许多多关于MIPS架构的评论或者见解。笔者对于市场一窍不通,故不在此班门弄斧。...按照约定,MIPS架构也保留了2个通用寄存器,让异常程序可以自举(在MIPS架构的CPU上,不使用寄存器是无法工作的)。

7.5K21

MIPS架构深入理解10-向MIPS移植软件之内存序

牛顿 这是向MIPS架构移植软件的问题系列之第三篇。...在前两篇文章 *《MIPS架构深入理解8-向MIPS架构移植软件之大小端问题》 *《MIPS架构深入理解9-向MIPS移植软件之Cache管理》 中,我们分别讨论了大小端模式和Cache对于移植代码的影响...MIPS架构提供了sync指令实现这个目的,它可以确保sync指令之前的访问先于之后的执行。...对于sync指令的详细使用方法,可以参考《MIPS指令集参考大全》一文。 不同的体系架构对执行顺序作出了不同的规定。...比如,一个运行MIPS代码的CPU,实际上运行的store指令大约占所有指令的10%左右;但是,往往是突发式访问,比如函数的调用过程中,首先需要压栈操作一组寄存器的值。

93210

MIPS架构深入理解9-向MIPS移植软件之Cache管理

牛顿 这是向MIPS架构移植软件的问题系列之第二篇。上一篇《MIPS架构深入理解8-向MIPS架构移植软件之大小端问题》中,我们讨论了大小端对于移植代码的影响。...为此,MIPS架构提供了Cache指令,可以根据需要调用它们,消除这种内存和Cache的不一致性。...移植性比较好的操作系统,比如Linux,不管是复杂的、不可见的Cache,还是简单的Cache,都能很好的适配。即,Linux一般提供一组很完备的API,供驱动编写者使用。...所以,MIPS32/64提供了synci指令,它可以执行D-Cache的回写操作和I-Cache的失效操作。具体可以参考MIPS指令集参考。...比如说,Linux操作系统,多个虚拟地址可能都会访问一个物理页(共享库)。

1.2K10

编译可用的Android模拟器ranchu内核

0x01 编译3.10的内核 查看模拟器中使用的内核版本: Linux version 3.10.0+ (jinqian@jinqian.mtv.corp.google.com) (gcc version...remotes/origin/android-goldfish-4.4-dev remotes/origin/heads/for/android-goldfish-3.18-dev remotes/origin/linux-goldfish...x86 --config=i386_ranchu --out=/tmp/ 如果报以下错误, 请在命令行后面加上: –cross=/usr/bin/ It looks like x86_64-linux-android-gcc...也可以改成android源码中提供的gcc路径前缀 编译完成后会在/tmp目录下生成kernel-qemu文件,将其替换掉模拟器镜像文件目录中的kernel-ranchu文件,重启模拟器即可;或是在启动模拟器的命令行中添加...0x02 解决编译的内核无法启动模拟器问题 使用编译的内核启动模拟器后,发现会一直黑屏,无法进入系统。

3.9K40

Cygwin:Windows下的Linux终端模拟器

提到 Linux 学习,可能很多童鞋都会说,不是我不想学,而是真的没有一个好的 linux 环境:装了 linux 吧,有时又会想回 Windows 玩玩游戏娱乐什么的,搞个双系统吧,又不想折腾!...想学习 Linux 基本命令又不想安装 Linux 系统的的童鞋请往下看。 虽说 Linux 是学习 Bash Shell 的天然环境,但是我们可以借助工具,在 Windows 下运行 bash。...最著名的的工具是 Cygwin,它是模拟类 UNIX 环境的软件,最初由 Cygnus Solution 公司开发,目的在于通过重新编译将 Linux 系统上的软件移植到 Windows 上。 ?...或者,你可将 C:/Cygwin/bin 加到%PATH%当中,您就可以直接在 cmd.exe 里面使用 Linux 命令了,比如 less, cat, wc , wget 如果您有一个 Bash 脚本...好了,这个模拟工具就介绍到这,想学 linux 的童鞋可以边看鸟哥的私房菜边使用这个工具先练练手,要真正学习 linux,个人还是建议安装个正统的 Linux 系统学习下比较好,比如 Redhat 或

5.2K30

5 款最酷的 Linux 终端模拟器

很久以前我在 遇见 Xiki,Linux 和 Mac OS X 下革命性命令行 Shell一文中介绍过 Xiki。...Xiki 不仅仅是又一款终端模拟器;它也是一个扩展命令行用途、加快命令行速度的交互式环境。 Xiki 支持鼠标,并且在绝大多数命令行 Shell 上都支持。...它甚至能运行在没有图形界面的 Linux 控制台上。 图 2: Terminology 也能够运行在没有图形界面的 Linux 控制台上。...Tilda 已经有几个优秀的下拉式终端模拟器,包括 Guake 和 Yakuake。 Tilda(图 3) 是其中最简单和轻量级的一个。...图 3: Tilda 是最简单和轻量级的一个终端模拟器。 Tilda 选项方面有很好的补充,包括默认的大小、位置、外观、绑定键、搜索条、鼠标动作,以及标签条。 这些都被右键单击菜单控制。

3.3K100

MIPS架构深入理解8-向MIPS移植软件之大小端模式

而像Linux系统,在编写应用或者系统软件的时候,一般都会考虑可移植性。所以说,基于Linux的软件一般都可以直接编译使用。...但是,对于MIPS架构来说,有些事情可能使用汇编语言编写更好。讲解这部分内容的时候,主要涉及inline汇编、内存映射I/O寄存器和MIPS架构可能出现的各种缺陷。...MIPS架构CPU可以支持大小端两种模式,需要上电时进行配置。...5 在MIPS架构上编写支持任意字节序的软件 你可能会想,我是否可以写一个正确运行在MIPS CPU上的程序,不论它被配置为大端模式,还是小端模式。或者编写一个可以运行在任意配置的板子上的驱动程序。...正是这个特性使得MIPS CPU能够配置大小端工作模式。当你重新配置MIPS CPU的字节序时,正是改变了这个操纵数据加载的硬件逻辑单元的行为。

1.9K10

汇编语言之MIPS汇编

简介 咱们知道x86架构cpu用于PC端和工作站较多,ARM架构cpu常见于手机和单片机,那么MIPS架构的cpu主要在哪些设备可以找到它们的身影呢?...中国龙芯 PS游戏机 学习环境搭建 安装JDK, 主要用于运行mips模拟器mars MARS模拟器:https://courses.missouristate.edu/KenVollmar/mars/...download.htm 寄存器 在mips中通用寄存器用$开头表示,一共有32个 寄存器编号 寄存器名 寄存器用途 $0 $zero 永远返回0 $1 $at 保留寄存器 $2-$3 $v0-$v1...MIPS汇编中的分段处理 .data #数据段 .text #代码段 传送指令 加载立即数指令 li li(load immediate) :用于将立即数传送给寄存器 li $t0,1 ;十六进制数据使用...$t1,sub # 如果$t0中的数据小于$t1,则跳转到sub分支,执行sub中的代码,否则,按照顺序执行bgt下面的代码, sub是一个代号,可以自定义 sub: 练习1: 将以下c代码转换成mips

9.6K30
领券