自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 std::set::insert 使用 initializer_list 初始化带有缺省值的构造函数的 struct 可能存在的坑

std::set::insert 使用 initializer_list,如果 struct 带有有缺省值的构造函数,则可能出现预期插入一个对象实际上插入多个的问题。

2022-11-22 19:48:41 260

原创 elastic.zzhrecieve.top redis攻击

zzhreceive.top redis攻击一则

2022-03-24 12:08:34 4521

原创 从零开始实现balloon操作系统(0x02) 加载setup模块

距离上一次发操作系统文章已经度过了好几个月,这几个月里我在忙于一个解释器项目,现在项目已经完全进入维护阶段,所以就有了空余时间继续啃操作系统。先看看解释器最终做出来的效果:好了题外话到此为止。0x01中我们实现了一个最小操作系统,使用0x10中断输出了一个句子。当时那篇文章开篇先把内存分布讲了一通(我现在看都觉得昏),可能有些劝退,这次开篇我先把优化的代码贴这,我们接下来基于此进行修改。# ballon system bootsect.s# copyright @ValKmjolnir# 2020

2021-01-09 18:02:33 285

原创 C语言可变参数及其原理

在刚学C没多久的时候,我一直有这么个疑问:printf这个函数是怎么做到可以处理不同数量的参数的?在初学C的时候,根本就没有遇到过(事实上程序设计课也没讲过)。我们追踪一下printf的实现:这里用到了__builtin_va_list,__builtin_va_start,__builtin_va_end,在中间调用了__mingw_vprintf函数,把类型为__builtin_va_list的__local_argv和第一个参数__format传了进去……然后就不明所以了。所幸我找到了一份

2020-10-22 22:10:54 1225 2

原创 neo4j 基础使用方法

通过name属性删除节点(节点为person)match (n:person{name:‘temp’})delete n删除节点同时断开关系连接match (n:person{name:‘temp’})detach delete n创建节点create (:person{age:4,id:10,name:“west wood”})创建的同时预览节点create (n:person{age:4,id:10,name:“west wood”}) return n创建关系先匹配需要建立关系的

2020-10-09 20:14:39 577

原创 从零开始实现balloon操作系统(0x01) 先在bootsect.s里实现一个最小操作系统吧

在0x00文章中我们提到了引导扇区的一个重要的细节:主引导签名。而在这篇文章中,我们先不要急着开始动手写,先了解一下计算机刚刚启动之后,我们能使用的内存空间,以及内存的分布情况。刚刚启动的时候,计算机会进入实模式,在这个模式下,我们能够访问的内存空间只有1M大小(且只能执行16位程序),如果我们想实现32位系统,能够访问4GB内存的话,就必须进入保护模式(64位系统则要进一步进入长模式)。实模式下,内存分布的情况如下:0xffff0-0xfffff BIOS入口地址。CPU初始化之后,会设置CS:

2020-09-25 19:18:32 424

原创 从零开始实现balloon操作系统(0x00) 前言以及准备工作

在写过自然语言处理框架和nasal脚本语言解释器之后,觉得无事可做,于是开始捣鼓操作系统了。对计算机感兴趣的人大多都有想过自己去写一个玩具级别的操作系统玩儿一玩儿,不过写操作系统对个人实力真的很有考验啊……我当时开始写操作系统的时候啥都不知道,计算机组成原理没学,汇编没学,只是整天写C++貌似写得很顺手,照着一哥们的视频教程,把bootloader的代码抄了一遍。这个教程的bootloader是根据linux0.11的实现做出来的,说实话linus太顶了,相同的年纪他能写出这样的代码,而我抄完发现自己完全

2020-09-23 23:45:20 264

原创 一分钟演示32位五级流水线MIPS-CPU设计

一分钟演示32位五级流水线MIPS-CPU设计,向计算机先驱致敬 BGM:Running-Alexandre Desplat 来自《模仿游戏》原声此设计为NUAA-CCST-2020计算机组成原理课程设计题目:36/45指令 32位 MIPS CPU数据通路设计。借此视频向计算机先驱们致敬。...

2020-06-26 15:59:37 1200

原创 35行实现brainfuck解释器

这次用数组来模拟栈,实时进行跳转,还挺方便的,也不用检测匹配,如果匹配不恰当sp必然会检测到问题然后终止执行,比以前写的短了一大截。纸带是用数组模拟的,指针从中间开始。程序也是数组存储,没有开特别大的空间,可以适当更改。#include <stdio.h>char program[1024],paper[1024];int ptr=512,stack[1024],sp=0;void run(){ int size=0,pc=0; for(;program[size]!='

2020-06-26 15:56:15 293

原创 [Minecraft] 从零开始搭建4位CPU(2)

第二部分直接开始整运算器部分。在实现逻辑运算前先对之前的寄存器组进行了一些小修改。我设计的ALU部件包含加法器,减法器,逻辑运算器,乘法器。大小比较和除法器会考虑用已有部件来实现。 [Minecraft] 你以为我在玩儿MC?其实我在造CPU哒!P2: 制作运算器部件 ...

2020-03-09 18:56:22 711

原创 [Minecraft] 从零开始搭建4位CPU(1)

这个学期刚好也开始学习计算机组成原理了。在MC里做CPU这个事情在我高二的时候就有想法,于是当时一直在学习数电相关的内容,但是对CPU的运行机制还是一知半解。高三的时候也尝试过自己画一个简单的CPU运行电路图,但是当时数电真的是学了个半吊子,时序逻辑部分一窍不通,而恰恰这一块逻辑又相当重要(毕竟触发器是个非常关键的部件),但是居然还是画出来了一个理论上可以执行的电路。虽然MC的红石电路确确实实是...

2020-03-09 18:53:03 2625

原创 计算机系统基础学习小笔记(1)

第一周的后半部分主要是讲了不同级别的语言,以及程序开发的过程,并且交代了课程主要内容。显然没人想这样玩儿电脑(跑)汇编语言对机器语言的序列提供了助记符和标号,并且一一对应,从而让人们从0101001的海洋中解放出来……但是直接用汇编语言写过度复杂的算法,实现非常复杂的数据结构,是一件非常反人类的事情。(但是我看这个课程还是主要来看汇编的wwwww)高级语言对人来说就友好多了,使用高...

2020-01-23 21:25:46 324

原创 计算机系统基础学习小笔记(0)

深入理解计算机系统对我们有什么好处呢?不少人在最初学C语言的时候,对这个语言的很多内容感到迷惑不解,比如说C语言的灵魂:指针。当然,也有不少人在使用C/C++时,遇到过一些非常奇怪的运行崩溃问题,比如内存访问越界,爆栈等。这个时候,如果我们没有了解过任何有关计算机运行原理的内容,这些奇怪的问题就会像一团乌云一样,一直漂浮在我们脑海上空。如果我们能够更加深入理解计算机的结构,如果我们能够更加清楚...

2020-01-23 20:26:01 509

原创 BP神经网络的简易C++实现(非矩阵)

看了很多BP神经网络原理,也看到很多python的代码,但是好像很少有人用C++来写。因为我习惯用C++写程序了,不妨就用C++啃下这个神经网络吧。BP(back propagation)神经网络是最基础的神经网络,很多变种,例如RNN,LSTM,GRU,HNN等,都基于这个神经网络的训练过程。BP包括三个神经元层,输入神经元,隐藏层神经元,输出神经元。上一层神经元的输出会被下一层的神经元“选择性...

2018-06-15 14:08:10 876 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除