华科 OS 实验的 RISC-V 代理内核是如何启动的?

代码仓库为 hustos riscv-pke 以下内容基于 lab2 代码 入口在哪? 入口为 kernel/machine/mentry.S 的 _mentry ,它调用了 kernel/machine/minit.c 的 m_start(uintptr_t hartid, uintptr_t dtb) ,两个参数并没有在 _mentry 中设置,这是因为 spike 会自动设置 a0 寄存器为 CPU id ,...

2024 Mar 02 · 2 min · vaaandark

内联汇编

高中第一次看到在 C 语言中嵌入汇编语言时,我就觉得它非常好玩,到大学刚开学的时候,我甚至有使用它的需求,可惜直到现在我才抽出时间开始学习它。 分...

2023 Jan 02 · 6 min · vaaandark

ARM与80X86的异同

今天初步认识了 ARM 汇编。 CPU 内寄存器 aarch64 有 31 个 64 位通用寄存器,它们的名字是为 xn(n 为 0-30 的整数),不像 80X86 一样暗示了它们的用途。 类似 rax 和 eax 的关系,它...

2022 Nov 08 · 2 min · vaaandark

CSAPP Bomb Lab

之前的 Bomb Lab 没有做,现在刚好在上计算机系统基础这门课,学校使用了 CSAPP 的 Bomb Lab ,可以补交一下 CSAPP 的作业,也可以学习一下 GDB 的使用。 实验简述 遗憾地,CSA...

2022 Oct 29 · 12 min · vaaandark

稍微深入VLA

最近在学习汇编语言,和朋友聊天时聊到了 C 语言中的变长数组,想知道在汇编后是什么样子的。 变长数组(Variable-length array) 可变长数组是...

2022 Oct 20 · 1 min · vaaandark

80X86汇编语言学习

汇编语言学习笔记 预备知识 Intel 机器 微型计算机的构成 80X86 微处理器的基本结构 数据寄存器组 段寄存器组 80X86 的三种工作方式 实地址模式 保护模式 虚拟 8086 方式(V86...

2022 Sep 27 · 3 min · vaaandark