北航计算机组成P2课下
北航计算机组成原理P2课下通过阅读本文,你可以大致了解北京航空航天大学2023级计算机组成原理P2课下的相关内容,希望能对你有所帮助
前言
在分享此次P2附加题做题思路前,我想对于在做题过程中错误和技巧进行总结与反思
对于栈的使用
为了使用栈,首先我们要有一个栈,而且对于某些递归程序或者传递参数较多的程序,频繁地对栈指针进行加减操作可能会出现某些难以察觉的问题,所以常常对于入栈和出栈操作封装函数.data stack: .space 400.macro push(%int) addi $sp, $sp, -4 sw %int, $sp.end_macro.macro pop(%int) lw %int $sp addi $sp, $sp, 4.end_macro.text la $sp, stack addi $sp, $sp, 400
对于含有多个参数的递归程序,比如汉罗塔问题(四个参数用寄存器其实也还可以),将会使用栈传递和接收参数,同时还需要使用栈保护寄存器,所以可以规定自己的一套规则(在函数的开始接收参数再保存寄存器,调用函数前先保护寄存器再传递参数),总之 ...
北航计算机组成P2推荐题汇总
北航计算机组成P2推荐题目汇总前言
题目怎么来的就不再赘述,有感兴趣的同学可以走这里 北航计算机组成P1推荐题汇总
P2推荐题目汇总1202-35 calculate
注意题目要求的是按照输入的顺序输出计数的字符,不是按照ascii码表的位置
我开了两个数组一个记录26个字母的数量,一个记录出现的顺序(重复出现的字母不会进行第二遍),最后遍历记录出现顺序的数组即可
还有一个小小的点:因为样例看起来是一行读入一个字符,实际测评机是一个接一个的字符读入,所以不需要处理\n(我刚开始就处理了,导致报了一个非法读入的错误) .macro read_chr(%chr) li $v0, 12 syscall move %chr, $v0 # 不需要处理字母后面的\n # li $v0, 12 # syscall.end_macro
提供一个有处理是否有重复输入的代码块 .text for_z_begin: # 用于判断是否出现过这个字符 beq $t2, $s1, for_z_end # 对目前出现的所有字符遍历 sll $t3, $t2, 2 l ...
计算机网络--物理层
计算机网络–物理层前言
在上一次的 blog 中我们对于计算机网络的结构功能等基础内容,从这一节开始我们将要学习的是计算机网络模型的第一层–物理层,通过物理层我们可以将需要传递的数据变为真实的物理信号,由此通过信息通路(也就是第零层)传递出去
通信基础
信源
信息的发送方
信宿
信息的接收方
信道
信息传输的通道
信号
数字信号:信号是离散的
模拟信号:信号是连续的
信号
在计算机中,我们常常使用一位的二进制 0/1 来表示信号,但是这并不代表着信号只能是一位的二进制(两种)
码元
每一个信号都是一个码元,每一个码元都对应一个二进制数
对于一位的信号只有两种码元,我们称为二进制码元;对于两位的信号会有四种码元,我们称为四进制码元。一个信号输出的整个周期被称为信号周期或者码元周期
优缺点
优点:每个信号周期可以携带更多信息,每个码元可以携带更多信息
缺点:需要加强信号功率,并且对信道的要求更高
码元与比特的关系
一个码元可以携带多少比特,这取决于一个码元周期可以有多少种信号
$ X_{码元} = \log_2 K * X_{比特}$($K ...
计算机网络--概述
计算机网络–概述前言
国庆好无聊啊,小熊饼干接待完朋友、过完生日之后实在是没有什么事了,但是又不想更新Python,所以他决定开始学习计网
本栏目仅仅是笔者自学内容,与北京航空航天大学的计网无关,我不是我没有
什么是计网
硬件
主机,又称端系统可以简单理解我们日常使用的电脑、服务器、手机、各类智能嵌入式系统等,他们处于计算机网络的边缘,所以称为端系统
通信链路,像网线、电缆、光纤等物理连接设备,例如可以将两台电脑使用网卡连接,就组成了一个简单的计算机网络
通信设备,端系统向计算机网络核心传递信息的中转站,例如集线器、交换机、路由器,通过他们我们可以将若干简单的计算机网络组成复杂的计算机网络
软件
可以是在主机运行的应用程序,例如微信、QQ、网盘等,方便用户使用,实现资源共享的程序
可以是在通信设备中的控制程序,用以控制通信设备传输信息
协议
规定计算机网络中的通信规则,利用这种规则封装传递的信息或者解构信息
$Attention$
使用集线器可以简单连接某几台设备,缺点是可能导致发送信息之间的冲突
使用交换机则不会出现信息冲突,不过交换机一般用于构建较小的计算机网络
使用 ...
北航计算机组成P1推荐题汇总
北航计算机组成P1推荐题目汇总题目怎么来的
偷来的(搓手手
如果你看了一下推荐题目的URL的话,你会发现cscore简直是天生为爬虫而生的,甚至参数都已经写在URL里面了,这不是勾引是什么?http://cscore.buaa.edu.cn/#/problem?ProblemId=334&PieId=1202
PieId
似乎是每个P的编号,每年的都不一样,2306的1202代表推荐题目,其他的大都爬不到(悲
ProblemId
下辖的题目编号,额,毫无规律可言,建议遍历爬取
但是似乎每年相同模块(例如推荐题目)的相同题目编号都有题目(未经
以及题目按照难度依次上升(笔者认为的,毫无参考价值(bushi )源码获取
组合电路
过于简单,仅有提示
1202-405 FloatTypemodule FloatType( input[31: 0] num, output reg[4: 0] float_type ); //定义状态 parameter zero = 5'b1; ... reg[7: 0] exponen ...
北航计算机组成P1课下
北航计算机组成原理P1课下通过阅读本文,你可以大致了解北京航空航天大学2023级计算机组成原理P1课下的相关内容,希望能对你有所帮助
前言
发现教程有了,不愧是STAR
在阅读本次P1题解分享之前,我想单独分享一些关于Verilog编写有限状态机的内容(佬跳过,好吗?好的)
从学习完Verilog到Pre上机之间的很长一段时间,我写Verilog有限状态机都只有一个过程块(可能大概应该有和我一样的同学吧),就像下面这样`define S0 2'b00......module xxx ( input clk, ......); always@(posedge clk) begin `S0: begin: //状态转移代码 end ...... default: begin //消除锁存器 end endendmodule
在写一些简单的Verilog有限状态机的时候觉得结构简单清晰易懂,怎么写这么舒服,感觉脑子都闲置了下来(bushi, ...
Python基础--字符串(二)
Python基础–字符串(二)前言请确保你已经有一定的Python基础且对字符串有一定了解哦,今天我们依旧来探索字符串的秘密,发车了(是因为笔者太懒才没有一次性写完的),完全不了解的小伙伴们也不用慌,移步Python基础--字符串(一)
格式化字符串%传统式
你是否看过这些特殊的字符串%s,%d呢,相信写过C语言的同学们一定不陌生了,如果没见过也没关系,他们都是一类特殊的字符串,我们称之为格式化字符串,常用于格式化我们的输出,那么我们就从最传统的%式格式化字符串讲解吧
常用的格式化字符串
%s
适用于为字符串占位,我本来就是啊
%d
适用于为十进制数字占位,类似的还有%x %o %b
%f
适用于为浮点数占位
.precision
适用于对浮点数精度控制,%.2f保留两位小数,默认是6位小数
width
指定占位符占据的宽度,%5d十进制整数至少占5个单位,不够补充
flags
指定填充位与对齐,与width位共同控制对齐问题
0,补充前导0
-,左对齐,默认是右对齐,将覆盖前导0
,方便正数与负数对齐
+,数字补齐符号
可以搭配使用,例如%-5.2f等等
...
北航计算机组成P0课下
北航计算机组成原理P0课下P0课下做题的一些分享,思路不一定是最佳实现思路,敬请大家斧正注意$logisim$的$Appearance$调整
P0.Q1 CRC校验码
读完了题目感觉题目和校验没什么关系教程已经有了明显的提示,使用4位模2运算电路拼出11位的模2除法运算电路,考虑到本题应该是一个组合电路题,所以笔者使用了类似行波进位器的电路
子电路定义如下(:sob:英语不好轻喷 )
定义接口
方向
描述
div[2:0]
I
上一次$mod2$运算留下的余数
new
I
本次$mod2$运算放在尾端的数
todiv[3:0]
I
除数
hi[2:0]
O
余数
lo
O
商
有八次$mod2$运算所以实现了八个子电路$M_i ( 1 \le i \le 8)$
利用Splitter分出后五位和三位零依次传入子电路中
连接$M_i.hi $ 与$ M_{i+1}.div$,就构成了行波$mod2$运算电路(
其实本来看到$mod2$除法运算第一个想到的是循环移位,但是不知道能不能用时序,应该是不行吧
最后的最后,记得$Appearance$,记得 ...
Python基础--字符串(一)
Python基础之字符串(一)前言
随着计算机发展日益加快,就算对于非计算机专业人士也通过键盘、鼠标等IO组件与计算机进行沟通。我们手指的每一次敲击,都传送给计算机输入某个“字符”的信号,字符与字符串不仅是编程语言的基本组成元素,更是我们与计算机交流的桥梁
对于Python 这门现代编程语言,字符串的操作也是重中之重,接下来让我们一起学习有关字符串的内容吧
什么是字符串字符串的创建
对于较早的C语言等,字符一般而言指acsii规定的128个字符,包括英文字母、数字、一些控制字符,而由这些字符组成的一串字符被形象地称作字符串char c = 'a';char str[10] = "abcde";
而Python3采用了号称万国码的Unicode字符集,可以表示包括中文、阿拉伯文等多国文字在内的若干字符,当然通过Python内置的编码、解码函数可以实现utf-8、ascii等其他编码方式之间的互相转换,当然这是后话了这里放一个编码的链接
在Python中没有字符和字符串的明显区别,字符串可以使用& ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post$ hexo new "My New Post"
the information is here
class GA: def __init__(self, name, gender, age): self.name = name self.gender = gender self.age = age def __str__(self): return f"name:{name},gender:{gender}, ...