【计算机系统设计】实践笔记(6)改进数据通路:lw和sw指令

不想多说了……前面的铺垫足够了,剩下的自己做做应该也会了,如果遇到问题,就搜一下自己查阅就好。

这篇水过,没有太多技术点。

唯一注意的是,引入的RAM和ROM的clk触发问题,可能引起时序问题,等实际测试遇到问题再解决,问题出现之前也不知道会遇到啥。

测试

.data
a: .word 0x64.text
nop
add $1,$2,$3	# $1 = 2 + 3 = 5
addu $2,$4,$1	# $2 = 4 + 5 = 9
sub $4,$2,$1	# $4 = 9 - 5 = 4
subu $5,$4,$3	# $5 = 4 - 3 = 1and $6,$7,$8	# $6 = 0111 and 1000 = 0
or $7,$6,$8		# $7 = 0 or 1000 = 8
xor $7,$6,$8	# $7 = 0000 xor 1000 = 1000 = 8
nor $8,$7,$6	# $8 = not (1000 or 0) = 11111111111110111slt $10,$11,$12	# $10 = 11 < 12 = 1		# 应该用负数验证,以后再说
sltu $10,$12,$11	# $10 = 12 > 11 = 0# sllv $12,$5,$13	# $12 = 1101 << 1 = 1101_0 = 1A	【注意此处的倒置问题! sllv rd,rt,rs】
# srlv $12,$5,$13	# $12 = 1101 >> 1 = 110 = 6
# srav $14,$5,$15	# $14 = 1111 >>> 1 = 111  = 7 应该用负数验证,以后再说# 上面3条是错误的!我们应该改的不是使用,而是内部运算逻辑
# 对于使用者来说,逻辑就是 $13 << $5
# 而实际的编码是 rt = $13,rs = $5,这与一般的指令不一样
# 因此,我们在ALU运算中 rt--B,rs--A,应该是 【B << A】,而不是 A >> B。
sllv $12,$13,$5	# $12 = 1101 << 1 = 1101_0 = 1A	
srlv $12,$13,$5	# $12 = 1101 >> 1 = 110 = 6
srav $14,$15,$5	# $14 = 1111 >>> 1 = 111  = 7 应该用负数验证,以后再说sll $16,$17,2	# $16 = 1_0001 << 2 = 100_0100 = 44	
srl $16,$18,2	# $16 = 1_0010 >> 2 = 0100 = 4
sra $16,$19,2	# 应该用负数验证,以后再说 $16 = 4################ I type test #################
addi $17,$7,-1	# $17 = 8 - 1 = 7  测试符号扩展
addiu $17,$7,-2 # $17 = 8 - 2 = 6
andi  $17,$8,1  # $17 = 1	测试zero extension
ori $17,$8,0	# $17 = ffff_fff7 = ffff_fff7
xori $17,$8,15	# $17 = ffff_fff7 xor 0000_000f = ffff_fff8 lui $17,100	# $17 = 前16位是64_后16位是0beq $0,$10,s1	# 0 = 0,jump!
nop
nop
nops1:
addi $10,$10,1	# $10 = 1
beq $0,$10,s1	# 0 != 1,don't jump
bne $0,$0,s3	# not jump
bne $0,$10,s2	# 0 != 1,jump
nop
nop
nops2:
lw $30,0($0) # $30 = mem[0] = 0x64
sw $10,4($0)	# mem[4] = 0x1
jr $16	# PC = 4s3:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/384634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html css 核心设计理念

分开看&#xff01; 从不同视角&#xff0c;独立地去看某一部分内容&#xff0c;使用聚焦视角&#xff0c;进行独立操作和批量操作。

html css 学习笔记(1)背景相关

背景颜色 图片 插入图片img背景图片 背景图片 3. logo 4. 大图 5. 装饰性小图 便于控制位置&#xff01; 插入后会执行自动平铺&#xff0c;这与插入图片是不同的&#xff01; div{width: 600px;height: 300px;background-image: url(img/登录用户头像.png); }小结 盒子的第…

html css a标签的应用

作为普通链接转换为行内块元素 转换为行内块元素之后&#xff0c;就可以给其各种块行为&#xff0c;加背景&#xff0c;加背景图片&#xff0c;设置宽高&#xff0c;内外边距…… 块行为可以的&#xff0c;它都行&#xff0c;唯一的区别&#xff0c;它这个盒子是个链接&#…

GitHub回滚

不要直接退回到很久前的历史版本&#xff0c;这很可能引起文件冲突&#xff0c;可以一步步回滚&#xff0c;先回滚最近的&#xff0c;从近到远一步步滚到目标。

2020-12-15 CPU设计复盘

SOC修改 将之前完成的31条指令单周期CPU进行了重构&#xff0c;将其分开&#xff0c;实现了内外有别&#xff0c;将CPU、指令ROM和数据RAM。 这样&#xff0c;以后为其增加接口外设&#xff0c;总线控制&#xff0c;才更加清晰&#xff0c;这是进一步封装和抽象。 MARS大坑 …

Tomcat 学习笔记(0)

JavaWeb 用Java写的程序&#xff0c;可以在浏览器运行。 Request & Responce Web资源 Web服务器 我们在自己的主机启动Tomcat服务器&#xff0c;然后运行它&#xff0c;就能够通过主机访问这个服务器&#xff0c;这个服务器能够运行我们的程序。 部署Web工程 法1 将web…

计算机系统 学习笔记(0)南京大学(一)第一周

课程&#xff1a;计算机系统基础 核心理念&#xff1a;人类世界与计算机世界的异同 人类世界 直观感受数学 计算机世界 与数学不同&#xff0c;存储首先&#xff0c;各层次与现实世界不同 我们关注点是差异点&#xff01; 一样的你就不用关心了&#xff0c;关心差异&#…

x86架构下 CF与OF标志位 带符号和无符号运算 详解

针对能够影响OF和CF标志位的指令&#xff0c;一般来说是涉及到数据运算的指令&#xff0c;这里使用add举例&#xff0c;即不区分有无符号的加法指令&#xff0c;参与运算的数据&#xff0c;从二进制层级去考虑。 CF标志位 对于CF&#xff0c;它是carry flag&#xff0c;进位标…

tmux学习笔记

参考学习链接 我们需要理解几个重要的概念 session 回话window 窗口pane 窗格 window 我们打开的一个terminal就是一个window. 而打开的这个window&#xff0c;也就是打开了一个session&#xff0c;打开window&#xff0c;session开始&#xff1b;关闭window&#xff0c;se…

安装win10和Linux双系统的个人经验

使用easy uefi误删除win10引导文件 这个时候&#xff0c;网上教程有各种方式&#xff0c;我直接使用了一种最简单的&#xff0c;这个方法网上都没有提到过。 注意&#xff1a;发现引导文件删了&#xff0c;千万不要关机&#xff0c;否则再想开机恐怕只能重装系统了。 我们直…

Linux的ext4文件系统学习笔记

补充&#xff1a;设备独立性 Linux中&#xff0c;设备驱动以文件形式表示&#xff0c;用户操作逻辑设备就是操作文件&#xff0c;而不是具体的物理设备&#xff0c;也就是说&#xff0c;用户操作的是功能&#xff0c;是黑箱&#xff0c;而不是真正的实体。 APP操作的都是逻辑…

html基础元素案例笔记(1)

这是代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>CSS FlexBox test</title><link rel"stylesheet" type"text/css" href"./css/index.css"></head><body>…

C语言中的struct和union区别

参考&#xff1a;Difference between Structure and Union in C 二者区别 struct 这里不做详细说明&#xff0c;因为参考链接中都写明了。只做一些重点强调。 struct中声明的变量&#xff0c;在分配空间的时候&#xff0c;struct结构空间大小&#xff0c;大于等于其内部所有…

C语言多文件编译链接为1个可执行文件的简单原理

参考1&#xff1a;C header files and compilation/linking 参考2&#xff1a;计算机系统基础&#xff08;一&#xff09;袁春风 &#xff08;符号链接部分&#xff09; 我们现在有一个简单的工程&#xff0c;有这么几个文件 1.t1.h extern int x;void tt();t1.c #include &…

Java读写二维数组到文件

1. 创建文件 使用了File类中的createrNewFile方法。 public static boolean createFile(String filename){try{File file new File(filename);file.createNewFile();return true;} catch (IOException e) {e.printStackTrace();return false;}}查阅文档可知&#xff0c;若文件…

如何掌握java API的方法

如何掌握方法的使用&#xff1f; 查文档文档不一定看得懂&#xff0c;亲自试一试就知道了&#xff01; 这俩方法没啥好说的&#xff0c;自己体会即可&#xff01; 注意&#xff01;先看原版英文文档&#xff0c;然后自己试一试&#xff0c;就能更加理解了&#xff0c;然后&a…

Leetcode1512. 好数对的数目 抽出本质原型 利用范围条件

解法1&#xff1a;暴力枚举 class Solution {public int numIdenticalPairs(int[] nums) {int count 0;for(int i 0;i < nums.length; i){for(int j i 1; j < nums.length; j){if(nums[i] nums[j])count;}}return count;} }没啥可说的&#xff0c;就是小学数学问题…

leetcode面试题 10.01. 合并排序的数组

直接排序 直接使用Java已有的方法进行排序&#xff0c;这一招…大意了&#xff01; 这题简单&#xff0c;就是个基本的排序&#xff0c;后面难题&#xff0c;可能这只是一小步&#xff0c;内个时候直接用排序算法比较合适&#xff0c;这个不合适。。 class Solution {public…

IA-32 Architecture: the function of segment regitster(CS DS SS ES)

对于IA-32架构&#xff0c;与8086不同&#xff0c;段寄存器不再是像以前一样&#xff0c;直接作为段基址&#xff0c;因为32位的寄存器直接就可以表示4GB大小&#xff0c;不需要再偏移&#xff0c;因此段寄存器的含义也发生了相应的变化。 在IA-32架构里&#xff0c;段寄存器是…

x86异常处理与中断机制(1)概述中断的来源和处理方式

参考《计算机组成》&#xff08;北京大学 MOOC&#xff09; 1 异常与中断的来源&#xff08;为什么需要中断&#xff09; 首先&#xff0c;说明一下异常和中断这两个概念。 它们两个唯一的区别&#xff0c;就是&#xff0c;没有什么区别。只是不同的地方不同的时间不同的人的…