jadeshu的博客

游戏编程,windows编程,linux编程

打造简单OS-总目录

1-汇编写入引导区,虚拟机启动步骤(了解即可) 2-开机BIOS初始化与MBR操作系统引导详解(了解即可) 3-MBR引导区转移加载简单程序(突破512限制)(了解即可) 4-loader硬盘加载和C++写入文件(重点) 5-进入保护模式 6- 内存分页 7-加载内核 8-中断 9...

2019-06-23 19:49:29

阅读数 36

评论数 0

<0>Cocos Creator学习目录

目录 安装和启动 文件结构 编辑器基础 基本概念 (场景树 节点 坐标 组件 ) Cocos Creator 脚本简介 Cocos Creator调试 节点 cc.Node 组件开发cc.Component cc...

2018-11-05 20:19:09

阅读数 461

评论数 0

gcc编译流程

GCC编译流程如下图所示: GCC 编译器在编译一个C语言程序时需要经过以下 4 步: 将C语言源程序预处理,生成.i文件。 预处理后的.i文件编译成为汇编语言,生成.s文件。 将汇编语言文件经过汇编,生成目标文件.o文件。 将各个模块的.o文件链接起来生成一个可执行程序文件。....

2019-07-16 00:06:02

阅读数 5

评论数 0

TCP/IP协议11种状态

1.l SYN_SENT:这个状态与SYN_RCVD 状态相呼应,当客户端SOCKET执行connect()进行连接时,它首先发送SYN报文,然后随即进入到SYN_SENT 状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT 状态表示客户端已发送SYN报文。 2.l LISTEN:...

2019-07-15 02:11:09

阅读数 9

评论数 0

传统PC机I/O位址空间范围

空间范围是0x000--0x3FF,有1024个I/O端口位址可供使用! 使用EISA或PCI等汇流排结构的现代PC机,有64KB的I/O位址空间可供使用。在普通Linux系统下透过查看/proc/ioports(对应的I/O口),可以得到相关控制器或设置使用的I/O位址范围! /p...

2019-07-15 01:32:25

阅读数 14

评论数 0

git常用命令

1.初始化: git init 2. 配置:git config --global user.name "XXX" git config --global user.email"XXX" 3.git --list / git -...

2019-07-14 21:11:12

阅读数 10

评论数 0

系统指令

系统指令用于处理系统级功能,如加载系统寄存器、管理中断等。大多数系统指令只能由处于特权级0的操作系统软件执行,其余一些指令可以在任何特权级上执行,因此应用程序也能使用。下表中列出了我们将用到的一些系统指令。其中还指出了它们是否受到保护。 常用系...

2019-07-01 20:29:17

阅读数 22

评论数 0

(5)打造简单OS-进入保护模式

1.简介: 8086实模式 80286才出现保护模式,保护模式下的段寄存器存储的是段选择子,不在是8086实模式的段基址了! [扩展知识]:可以看了后面知识在回头看一下这段. [8086各个段寄存器和通用寄存器都是16位,地址总线20位,采用段式段+偏移...

2019-07-01 03:23:48

阅读数 67

评论数 0

ELF格式说明

ELF file header(ELF文件头) /* The ELF file header. This appears at the start of every ELF file. */ #define EI_NIDENT (16) typedef struct { unsig...

2019-06-23 22:22:38

阅读数 23

评论数 0

bochs调试命令

Bochs几条基本指令: 通过物理地址查看内存时,可以不加参数'/nuf': 其中n指定显示的单元数,默认是1; u 指定每个显示单元的大小(b表示字节、h表示字(2字节)、w表示双字(4字节)),默认是w; f 指定显示格式(x 十六进制、d 有符号十进制、u 无符号十进制、o 八进制、...

2019-06-23 19:09:02

阅读数 19

评论数 0

(4)打造简单OS-loader硬盘加载和C++写入文件

简要说明: 我们完全可以使用bochs创建映像文件,如https://blog.csdn.net/jadeshu/article/details/89046838 ,那么为什么还去用C++去模拟文件呢,主要更深刻的理解和自己动手,比直接创建的文件映像更深刻,了解的内容也更多!!! ...

2019-06-23 16:03:43

阅读数 78

评论数 0

经常用到(创建OS)的命令

1. 将汇编代码编译为二进制模块文件 nasm mbr.asm -o mbr nasm loader.asm -o loader 2. 将wirte.c文件编译为二进制模块文件 gcc -m32 -fno-asynchronous-unwind-tables -s...

2019-06-19 20:59:56

阅读数 39

评论数 0

OS创建页目录和页

;开始创建页目录项(PDE) .create_pde: ; 创建Page Directory Entry mov eax, PAGE_DIR_TABLE_POS add eax, 0x1000 ; 此时eax为第一个页表的位置及属性 mov ebx...

2019-04-13 16:02:24

阅读数 84

评论数 0

nasm汇编讲解

一、什么是nasm汇编 nasm使用在windows、linux等系统下的汇编。 二、语法介绍 2.1 nasm 是区分大小写 例如:符号 foo 与 FOO 是两个不同的标识符。 2.2 内存操作数表达式 2.2.1 在 nasm 语法里,对 memory 操作数需要加 [ ] 括号...

2019-04-09 19:25:44

阅读数 97

评论数 0

C++11多线程std::thread创建方式

//#include &lt;cstdlib&gt; //#include &lt;cstdio&gt; //#include &lt;cstring&gt; #include &lt;string&gt; #include &...

2019-04-09 16:54:22

阅读数 41

评论数 0

C++类*类型和其他类型相互转换

类类型转换时会出现两种之间转换,下面我们说的是类类型 1.其他类型转换为本类类型 通过类带一个参数的构造函数;或者多个参数构造函数,除了第一个参数后面参数都有默认值时!这样在其他类型赋值给该类类型对象时会发生隐式转换。 #include &lt;string&gt; #i...

2019-04-09 02:48:51

阅读数 27

评论数 0

《30天自制操作系统》运行错误更改

1.make时copy命令出错,把make文件更改如下: (1)把copy改成cp del改为rm default : ../z_tools/make.exe img ipl.bin : ipl.nas Makefile ../z_tools/nask.exe ipl.nas ip...

2019-04-08 01:49:04

阅读数 47

评论数 0

LBA逻辑块地址

LBA简介 磁盘读取发展 IO操作读取硬盘的三种方式: chs方式 :小于8G (8064MB) LBA28方式:小于137GB LBA48方式:小于144,000,000 GB LBA方式访问使用了data寄存器,LBA寄存器(总共3个),device寄存器,c...

2019-04-07 17:46:22

阅读数 139

评论数 0

条件转移指令

2019-04-05 21:49:50

阅读数 151

评论数 0

bochs模拟器创建映像文件 、写入文件并启动

安装 bochs,dd for windows,nasm,并将安装目录加入到环境变量中。 我用的bochs版本是2.6.8 1.用 bochs 中 bximage.exe 创建新的 img 文件 2.编写汇编代码并编译成二进制文件 test.asm汇编文本文件 org 0x7C00...

2019-04-05 19:51:04

阅读数 247

评论数 0

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