PA1 - 开天辟地的篇章: 最简单的计算机
在开始愉快的PA之旅之前
超级马里奥真好玩(bushi)
搞了一波ccache,没搞好,从一点弄到两点,自闭了硬是没在/.bashrc下面找到他说的那个环境变量,打算明天(10.13)去请教一下学长了
发现时间不对,折腾了下时间$ sudo systemctl restart systemd-timesyncd.service
https://zhuanlan.zhihu.com/p/77905195
10.14又重新试了一下,发现好了???在~/.bashrc的最后一行加入export PATH=/usr/lib/ccache:$PATH
,但是我记得昨天也是这么做的(好像我把他加在PATH后面了?)不知道为啥今天又可以了。
可以看到确实快了不少
开天辟地的篇章
感觉计算机是可以没有寄存器的,毕竟图灵机就没有寄存器。事实上我觉得可以直接拿一块硬盘当寄存器()
计算机执行应该就是寻址-执行的循环
状态机如下
(0, x, x) -> (1, 0, x) -> (2, 0, 0) -> (3, 0, 1) -> (4, 1, 1) -> (5, 1, 2) ... -> (201, 4950, 100) -> (202 , 5050, 100)
至少感觉会比较容易调试,比如在使用gdb的时候
RTFSC
根据错误信息注释掉两行代码
读代码什么的还是等二周目吧
看来我还没太理解,先放着之后再写吧
打印寄存器
注意nemu/src/isa/riscv32/reg.c
里面引用的这个头文件,这里折腾了好久,真心自闭
扫描内存
这回学聪明了,我们得先找到内存在哪,如下图
用对应的函数进行访问即可vaddr_read
EntyEnty520~