【计算机系统设计】学习笔记(1)03,04
- 疑问:sw和lw指令,获取的地址==不是4的整倍数(字节不对齐)==的时候,应该如何处理?
东南大学MOCC 计算机系统综合设计 03
03-1 寄存器
介绍了MIPS寄存器,32个寄存器的基本功能和使用,注意
- 子程序调用寄存器
t
不保护与s
的保护 $31
寄存器在子程序嵌套调用下如何使用?$0
只能为0,写入其他值将会被忽略,但是允许写入,只是写完也没用
03-2 寻址方式
PC相对寻址
PC = (PC + 4) + ((sign-extend)imm << 2)
为什么要扩展后左移两位?因为32位指令进行字节对齐后,一定是4的倍数,因此最低两位一定是00
,所以就没必要存储上再占空间,而计算的时候,则要还原它。
(字节寻址而不是字寻址)
所有跳转指令的目标地址,编译存储的时候,都会➗4,实际运行的时候,都是乘以4还原。
04 典型指令讲解
MinSysy-1不处理异常
add
和addu
的区别,前者溢出后进行异常处理,后者不进行,因此后者常用来进行地址计算(如果偏移量为负值,必然溢出,但实际上只是地址往上跳转而已)由于暂时无异常处理,所以add和addu,addi和addiu实际一样。
sub
和subu
也一样,u
代表的含义是,溢出之后有没有异常处理。对于立即数运算,逻辑运算imm是零扩展(例如andi),算术运算imm是符号扩展(例如addi),这很好理解,逻辑运算没有有无符号数的概念。(具体指令具体分析)
注意写操作的
rs
和rt
的反着的,源是rt
,目标地址是rs + 偏移量
- 疑问:sw和lw指令,获取的地址==不是4的整倍数(字节不对齐)==的时候,应该如何处理?(比如直接忽略不对齐的部分,或者报异常)
对于字读取,如果不是4的倍数,那么最低两位不是00
,但是存储的时候,也一样>> 2
,又会给抹掉了。
把16位立即数,赋值给32位寄存器的高16位。
对于beq
和bne
指令,判断相等不相等,直接用减法(-)
判断就行了。
- 小于则赋值,条件赋值指令
比大小,自然应该是算术运算,有符号数。
因此自然有无符号比较的小于置位
。
显然是逻辑上的,因此是零扩展。
就类似于函数调用,调用完之后,要返回$31
值对应的地址。
jal和jr配合,就实现了过程调用和返回。
注意,有的是硬件设计相关,有的则是软件设计相关。
小结
把握指令集功能的内在联系,而不是堆砌它们。
- 零扩展还是符号扩展?
- 一般来说,算数运算是符号扩展
- 逻辑运算是零扩展
- 溢出检测还是不检测?(溢出:针对有符号数,正数 + 正数 = 负数、正数 - 负数 = 负数……)
- 算数运算,检测溢出
- 逻辑运算、地址运算,没必要检测
- 等于不等于的判断?直接复用减法就好了。
【计算机系统设计】学习笔记(1)03,04相关推荐
- GAMES101-现代计算机图形学学习笔记(作业03)
GAMES101-现代计算机图形学学习笔记(作业03) Assignment 03 GAMES101-现代计算机图形学学习笔记(作业03) 作业 作业描述 思路 原课程视频链接以及官网 b站视频链接: ...
- 计算机组成原理学习笔记(上)
计算机系统概论 计算机发展历程 原始计算工具 中国人的智慧之光 机械式计算机 西方人的智慧 机电式计算机 电子计算机 1,最古老的计算工具:算筹 2,冈特计算尺 3,达芬奇机械式计算机 4,1642年 ...
- 评价微型计算机总线的性能指标,计算机组成原理学习笔记(3):总线
文章目录 课程笔记导览 附录:英语解释 第三章 总线 3.1 总线的基本概念 使用总线的原因: 总线的定义 总线上信息的传送 总线结构举例 单总线结构 面向CPU的双总线结构 以存储器为中心的双总线结 ...
- Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)
0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...
- LearnOpenGL学习笔记—入门03:Hello Triangle
LearnOpenGL学习笔记-入门03:Hello Triangle 0 前言 1 图形渲染管线 2 顶点输入 3 VAO,VBO 3.1 VAO建立 3.2 VBO建立 4 shader 5 绘制 ...
- 计算机组成原理学习笔记一
计算机组成原理学习笔记一 计算机发展历程 一.计算机硬件发展 (1)计算机的四代变化 (2)计算机元件更新换代 二.计算机软件发展 三.计算机的分类 计算机系统层次结构 一.计算机系统的组成 二.计算 ...
- 专升本 计算机 公共课学习笔记(持续更新中...)
计算机公共课学习笔记 第一章 计算机基础知识(30分) 1.计算机概述 计算机(Computer)的起源与发展 计算机(Computer)也称"电脑",是一种具有计算功能.记忆功能 ...
- GAMES101-现代计算机图形学学习笔记(作业07)
GAMES101-现代计算机图形学学习笔记(作业07) Assignment 07 GAMES101-现代计算机图形学学习笔记(作业07) 作业 作业描述 思路 结果 原课程视频链接以及官网 b站视频 ...
- 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等
接上文 计算机图形学 学习笔记(六):消隐算法:Z-buffer,区间扫描线,Warnock,光栅图形学小结 在图形学中,有两大基本工具:向量分析,图形变换.本文将重点讲解向量和二维图形的变换. 5. ...
- GAMES101-现代计算机图形学学习笔记(作业02)
GAMES101-现代计算机图形学学习笔记(作业02) Assignment 02 GAMES101-现代计算机图形学学习笔记(作业02) 作业 作业描述 需要补充的函数 思路 结果 原课程视频链接以 ...
最新文章
- 【NLP】人大团队研究:面向文本生成,预训练模型进展梳理
- 计算机创造奇迹英语作文,高中英语作文模板 第274期:Creating Miracle 创造奇迹
- java 泛型 类型形参(Type Parameters)
- PHP之wampserver修改根目录与默认页面
- Android Sensors (3) 传感器坐标系统
- 近似推断:使用高斯混合模型
- 手把手教你学DSP 28335学习笔记
- BLE蓝牙协议栈杂谈
- TeamTalk编译和部署(一)
- TeamViewer14试用版到期怎么解决--免费许可证(仅非商业用途)
- 小米手机获取root权限完整详细教程,亲测可用(精)
- `Stream`的`Collectors.reducing`与`Collectors.groupingBy`
- java按成绩排序_JAVA中按分数高低对同学进行排序二维数组
- 南昌治疗糖尿病的专科医院
- 公司中的一些职位名称及其缩写
- 使用GRUB2制作多重系统引导程序
- 阿里云域名可以转账号吗?
- 研究人员利用黑猩猩改进动物模拟技术 效果显著!
- java bean prototype_Spring原型bean-prototype不能销毁? 转载
- 陆化普:交通强国战略下城市交通发展要求与对策重点
热门文章
- 九度OJ1486 /POJ 1029/2012北京大学研究生复试上机
- BZOJ2435 [Noi2011]道路修建
- jquery下 选择器整理
- 东哥读书小记 之 《一个广告人的自白》
- Gridview应用技巧——如何为行添加事件
- 版本控制工具SVN+Apache整合
- android /data/data/数据作用,android 清除data/data/ 下其他应用的数据
- hash的算法 java_【数据结构与算法】一致性Hash算法及Java实践
- adc分辨率和精度的区别_科普 | 传感器的灵敏度、分辨率和精度三者之间有何区别?...
- java字符集编码是,java字符集与编码有关问题