© 2020 CHEN Yuhan

炸毛的秘密基地

「(o゜▽゜)o☆奇怪的知识增加了」

通用矩阵乘法及其优化

GEMM and its Optimization / C/C++ / HPC

DCS293 - High Performance Computing 2021 Fall DCS242 - Parallel and Distributed Computing 2021 Fall 背景 数学上,一个$m \times n$的矩阵是一个由$m$行$n$​列元素排列成的矩形阵列。...

用 AVX 编写 SIMD 程序

Accelerate the Program with SIMD using AVX / C/C++ / HPC

DCS242 - Parallel and Distributed Computing 2021 Fall SIMD SIMD(Single Instruction Multiple Data,单指令多数据流),是一种实现空间上的并行性的技术。这种技术使用一个控制器控制多个处理单元,同时对一组数...

编写内核

中断处理函数和时钟中断的实现 / OS / asm

DCS218 - Operating Systems Lab 2021 Spring 前言 本文章介绍操作系统内核最重要的功能之一————时钟中断的实现。 编写内核 bootloader 中加载操作系统内核到地址 0x20000,然后跳转到 0x20000 。内核接管控制权后,输出...

C/C++/x86asm 混合编程

/ OS / C/C++ / asm /

DCS218 - Operating Systems Lab 2021 Spring 前言 本文章介绍了 C 代码调用汇编函数的语法和汇编代码调用 C 函数的语法,以及 C/C++ 混合编程。 混合编程 global 在汇编中告诉编译器后续跟的是一个全局可见的名字,可能是函数名也可能是变量名。 ...

加载 bootloader & 进入保护模式

/ OS / asm /

DCS218 - Operating Systems Lab 2021 Spring 前言 本文章介绍了 LBA 和 C/H/S 读取磁盘加载 bootloader,进入保护模式并执行自定义的汇编程序。 1. bootloader 的加载 1.1 LBA方式读取磁盘加载 bootloader ...

加载 MBR 运行 x86 汇编程序

用文本模式控制显存在屏幕上打印 / OS / asm

DCS218 - Operating Systems Lab 2021 Spring 前言 本文章介绍了 x86 汇编、计算机的启动过程、IA-32 处理器架构和字符显存原理。编写程序让计算机在启动后加载运行,使用 gdb 来调试程序,以此增进对计算机启动过程的理解。 1.1 输出 Hellowor...

浅谈左值和右值

lvalue & rvalue / C/C++

本文章主要介绍 C/C++ 编码中常见的左值 (lvalue)、右值 (rvalue) 的概念和左值引用 (lvalue reference) 、右值引用 (rvalue reference) 的概念。 左值与右值 首先,如果按照字面意义来理解,左值似乎就是指等号左边的值,右值就是指等号右边的值。当然,也有人...