- 博客(18)
- 收藏
- 关注
原创 硬盘主引导扇区代码 阅读和分析
《x86汇编语言-从实模式到保护模式》笔记 1.` ;设置堆栈段和栈指针 ,使堆栈段的逻辑地址和代码段相同, 0x7c00是个分界线,从这里,代码向上扩展,而堆栈向下扩展。 mov ax,cs mov ss,ax mov sp,0x7c00`2.下面开始定义主引导扇区代码所使用的数据段、代码段和堆栈段。在保护模式下,内存的访问机制完全不同,即,必...
2018-07-30 22:18:01 1234
原创 数据结构探险——二叉树的线索化和霍夫曼树
#include <stdio.h>#include <stdlib.h>// 线索化的实质就是将二叉链表中的空指针改为指向前驱或后继的线索typedef DataType char;typedef struct node{ DataType data; int leftFlag,rightFlag; //c 没有bool,枚举也行 st...
2018-07-26 16:45:10 338
原创 数据结构探险——数组和广义表
1.//稀疏矩阵三元组顺序表示#include &amp;lt;iostream&amp;gt;using namespace std;#define capacity 1024 typedef int Datatype;//矩阵中的元素类型struct TriType{ int row,col; Datatype value;};class TriArray{publ...
2018-07-22 21:11:45 239
原创 KMP算法
这是一个非常有意思的算法,关键是理解模式串的指针的移动,参考: https://www.zhihu.com/question/21923021/answer/281346746 加深next的理解看下图: 更抽象的分析在这里: 代码如下:求next数组的过程完全可以看成字符串匹配的过程,即以模式字符串为主字符串,以模式字符串的前缀为目标字符串,一旦字符串匹配成功,那么当前的ne...
2018-07-21 19:53:46 208
原创 数据结构探险—串
1.串的数据元素只能是字符类型; 2.以子串为操作单位;SqString.h#pragma once#ifndef _SQSTRING_H#define _SQSTRING_Hclass SqString{public: SqString(int size, char *str); ~SqString(); int StrLen()const; ...
2018-07-20 08:55:34 217
原创 数据结构探险—二叉树
Tree.h#pragma once#ifndef _TREE_H#define _TREE_Hclass Tree{public: Tree(int size,int *pRoot); virtual ~Tree(); int *SearchNode(int nodeIndex)const; bool EnTree(int nodeIndex, ...
2018-07-18 21:18:16 271
原创 数据结构探险—链表
link.h#pragma once#ifndef _LINK_H#define _LINK_H#include "node.h"class Link{public: Link(); ~Link(); void ClearLink(); bool LinkEmpty()const; int LinkLength()const; ...
2018-07-18 16:53:41 210
原创 汇编语言实现斐波那契数列
c语言写成如下形式:int fibo(int n) { if(n == 1 || n == 2) return 1; return fibo(n - 1) + fibo(n - 2);//递归调用}改写:int fibo(int eax) { int ebx, ecx; if(eax == 1) { return eax; ...
2018-07-18 13:33:05 17156 5
原创 数据结构探险—线性表
.h#pragma once#ifndef _LIST_H#define _LIST_Hclass List{public: List(int size); virtual ~List(); void ClearList(); bool ListEmpty()const; int ListLength()const; bool Get...
2018-07-16 21:41:07 225
原创 数据结构探险—栈篇
头文件#pragma once#ifndef _STACK_H#define _STACK_H// !_STACK_Hclass Stack{public: Stack(int size); virtual ~Stack(); bool StackEmpty() const; bool StackFull() const; void Clea...
2018-07-11 19:31:36 196
原创 x86 汇编语言:从实模式到保护模式
第二章程序的重定位难题 完成某个工作的所有指令,必须集中在一起,处于内存的某个位置,形成一个段,叫做代码段。要是指令并没有一条挨着一条存放,中间夹杂了其他非指令的数据,处理器将因为不能识别而出错。 程序总要操作大量的数据,这些数据也应该集中在一起,位于内存中的某个地方,形成一个段,叫做数据段。...
2018-07-11 14:13:33 5399
原创 数据结构探险——队列
元素,关系,操作 头文件:#pragma once#ifndef _QUEUE_H#define _QUEUE_Hclass Queue{public: Queue(int queueCapacity); virtual ~Queue(); void ClearQueue(); bool QueueEmpty(); int Que...
2018-07-10 22:11:20 190
原创 计组3:流水
并行并发:两个或两个以上事件在同一时间段发生,比如多个程序在微小的时间片段上执行,看起来是在同时执行 同时:两个或两个以上事件在同一时刻发生,时间上相互重叠 过程级由操作系统实现指令流水原理六级流水假设不存在冲突 影响流水效率和性能的因素a.执行时间>取指时间 解决:添加指令部件缓冲区 b.条件转移指令必须等上条指令执行结束,才能确定下条指令的...
2018-07-06 16:30:26 584
原创 计组2:数的浮点表示
计算机中采用规格化数的形式,计算机中存储的是数符,阶符,阶码,尾数。 公众号上看到的一道题目#include <stdio.h>int main(){ double a = 10; printf("a = %d\n",a); return 0; }结果是多少? 我运行了一下,结果是a = 0; 这是为什么? 根据IEEE标准...
2018-07-05 22:24:01 305
原创 But How Do It Know 三大发明
1.The invention is that we will have a series of instructions in RAM that will tell the CPU what to do. 指令的发明 1000 1011 寄存器2和3相加 加载和存储 比如:LD RA,RB Load RB from RAM address in RA 2.Ju...
2018-07-04 15:32:01 2847 1
原创 But How Do It Know 存储计算和顺序
But How Do It Know 计算机是怎么知道的是一本书的名字,作者用通俗易懂的语言,由浅入深的给我们讲解了cpu的工作原理。 **逻辑运算实现的电路原理请看深入分析逻辑门电路 1.计算机是怎么Remember的? 寄存器个内存 都是与非门。 i是输入的bit,o是输出的bit,s是设置输出能否根据输入改变即该门能否有用的bit。 s=1,i=0,a=1&b=0,c...
2018-07-04 15:03:36 5141
原创 But How Do It Know 关于人工智能的思考
神图 能够实时观察设计的cpu是如何执行指令的。网页地址:http://www.buthowdoitknow.com/but_how_do_it_know_cpu_model.htmlPhilosophy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; But How do it Kn
2018-07-04 13:45:14 3434
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人