• 疑问: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 典型指令讲解

  1. MinSysy-1不处理异常

  2. addaddu的区别,前者溢出后进行异常处理,后者不进行,因此后者常用来进行地址计算(如果偏移量为负值,必然溢出,但实际上只是地址往上跳转而已)

  3. 由于暂时无异常处理,所以add和addu,addi和addiu实际一样。

  4. subsubu也一样, u 代表的含义是,溢出之后有没有异常处理。

  5. 对于立即数运算,逻辑运算imm是零扩展(例如andi),算术运算imm是符号扩展(例如addi),这很好理解,逻辑运算没有有无符号数的概念。(具体指令具体分析

  6. 注意写操作rsrt的反着的,源是rt,目标地址是rs + 偏移量

  • 疑问:sw和lw指令,获取的地址==不是4的整倍数(字节不对齐)==的时候,应该如何处理?(比如直接忽略不对齐的部分,或者报异常)

对于字读取,如果不是4的倍数,那么最低两位不是00,但是存储的时候,也一样>> 2,又会给抹掉了。
把16位立即数,赋值给32位寄存器的高16位。

对于beqbne指令,判断相等不相等,直接用减法(-)判断就行了。

  • 小于则赋值,条件赋值指令

    比大小,自然应该是算术运算,有符号数。

因此自然有无符号比较的小于置位

显然是逻辑上的,因此是零扩展

就类似于函数调用,调用完之后,要返回$31值对应的地址。


jal和jr配合,就实现了过程调用和返回

注意,有的是硬件设计相关,有的则是软件设计相关。

小结

把握指令集功能的内在联系,而不是堆砌它们。

  1. 零扩展还是符号扩展?

    1. 一般来说,算数运算是符号扩展
    2. 逻辑运算是零扩展
  2. 溢出检测还是不检测?(溢出:针对有符号数,正数 + 正数 = 负数、正数 - 负数 = 负数……)
    1. 算数运算,检测溢出
    2. 逻辑运算、地址运算,没必要检测
  3. 等于不等于的判断?直接复用减法就好了。

【计算机系统设计】学习笔记(1)03,04相关推荐

  1. GAMES101-现代计算机图形学学习笔记(作业03)

    GAMES101-现代计算机图形学学习笔记(作业03) Assignment 03 GAMES101-现代计算机图形学学习笔记(作业03) 作业 作业描述 思路 原课程视频链接以及官网 b站视频链接: ...

  2. 计算机组成原理学习笔记(上)

    计算机系统概论 计算机发展历程 原始计算工具 中国人的智慧之光 机械式计算机 西方人的智慧 机电式计算机 电子计算机 1,最古老的计算工具:算筹 2,冈特计算尺 3,达芬奇机械式计算机 4,1642年 ...

  3. 评价微型计算机总线的性能指标,计算机组成原理学习笔记(3):总线

    文章目录 课程笔记导览 附录:英语解释 第三章 总线 3.1 总线的基本概念 使用总线的原因: 总线的定义 总线上信息的传送 总线结构举例 单总线结构 面向CPU的双总线结构 以存储器为中心的双总线结 ...

  4. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  5. LearnOpenGL学习笔记—入门03:Hello Triangle

    LearnOpenGL学习笔记-入门03:Hello Triangle 0 前言 1 图形渲染管线 2 顶点输入 3 VAO,VBO 3.1 VAO建立 3.2 VBO建立 4 shader 5 绘制 ...

  6. 计算机组成原理学习笔记一

    计算机组成原理学习笔记一 计算机发展历程 一.计算机硬件发展 (1)计算机的四代变化 (2)计算机元件更新换代 二.计算机软件发展 三.计算机的分类 计算机系统层次结构 一.计算机系统的组成 二.计算 ...

  7. 专升本 计算机 公共课学习笔记(持续更新中...)

    计算机公共课学习笔记 第一章 计算机基础知识(30分) 1.计算机概述 计算机(Computer)的起源与发展 计算机(Computer)也称"电脑",是一种具有计算功能.记忆功能 ...

  8. GAMES101-现代计算机图形学学习笔记(作业07)

    GAMES101-现代计算机图形学学习笔记(作业07) Assignment 07 GAMES101-现代计算机图形学学习笔记(作业07) 作业 作业描述 思路 结果 原课程视频链接以及官网 b站视频 ...

  9. 计算机图形学 学习笔记(七):二维图形变换:平移,比例,旋转,坐标变换等

    接上文 计算机图形学 学习笔记(六):消隐算法:Z-buffer,区间扫描线,Warnock,光栅图形学小结 在图形学中,有两大基本工具:向量分析,图形变换.本文将重点讲解向量和二维图形的变换. 5. ...

  10. GAMES101-现代计算机图形学学习笔记(作业02)

    GAMES101-现代计算机图形学学习笔记(作业02) Assignment 02 GAMES101-现代计算机图形学学习笔记(作业02) 作业 作业描述 需要补充的函数 思路 结果 原课程视频链接以 ...

最新文章

  1. 【NLP】人大团队研究:面向文本生成,预训练模型进展梳理
  2. 计算机创造奇迹英语作文,高中英语作文模板 第274期:Creating Miracle 创造奇迹
  3. java 泛型 类型形参(Type Parameters)
  4. PHP之wampserver修改根目录与默认页面
  5. Android Sensors (3) 传感器坐标系统
  6. 近似推断:使用高斯混合模型
  7. 手把手教你学DSP 28335学习笔记
  8. BLE蓝牙协议栈杂谈
  9. TeamTalk编译和部署(一)
  10. TeamViewer14试用版到期怎么解决--免费许可证(仅非商业用途)
  11. 小米手机获取root权限完整详细教程,亲测可用(精)
  12. `Stream`的`Collectors.reducing`与`Collectors.groupingBy`
  13. java按成绩排序_JAVA中按分数高低对同学进行排序二维数组
  14. 南昌治疗糖尿病的专科医院
  15. 公司中的一些职位名称及其缩写
  16. 使用GRUB2制作多重系统引导程序
  17. 阿里云域名可以转账号吗?
  18. 研究人员利用黑猩猩改进动物模拟技术 效果显著!
  19. java bean prototype_Spring原型bean-prototype不能销毁? 转载
  20. 陆化普:交通强国战略下城市交通发展要求与对策重点

热门文章

  1. 九度OJ1486 /POJ 1029/2012北京大学研究生复试上机
  2. BZOJ2435 [Noi2011]道路修建
  3. jquery下 选择器整理
  4. 东哥读书小记 之 《一个广告人的自白》
  5. Gridview应用技巧——如何为行添加事件
  6. 版本控制工具SVN+Apache整合
  7. android /data/data/数据作用,android 清除data/data/ 下其他应用的数据
  8. hash的算法 java_【数据结构与算法】一致性Hash算法及Java实践
  9. adc分辨率和精度的区别_科普 | 传感器的灵敏度、分辨率和精度三者之间有何区别?...
  10. java字符集编码是,java字符集与编码有关问题