- 博客(8)
- 收藏
- 关注
原创 使用Bootloader加载操作系统内核2:Bootloader启动流程
搞清楚了i386分段机制以后,我们来看bootloader是怎么启动的。下图就是32位CPU的物理地址空间范围,前面的1M是之前的8086的地址空间,从0到640K就是之前的8086可以使用的物理内存,从640到768是VGG显存空间,往这个区域写入字符就可以在显示器里显示,768-960是用来映射到外设,960-1M就是映射到BIOS ROM,BIOS程序是放在ROM里面,ROM跟RAM一样通过地址就可以访问,1M以上就是32位CPU的物理内存,最上面的一点是映射到32位CPU的外设。
2025-02-26 10:52:38
735
原创 使用Bootloader加载操作系统内核1:i386分段的机制
描述符表设置完成以后,我们就看段选择子,段选择子就是每个段在描述符表中的偏移,gdt表里第1个段的偏移是0,那么它的段选择子就是0,第二个段是代码段它的偏移是8个字节,所以它的段选择子是8,第三段是数据段它的偏移是16,所以它的段选择子是16,代码段的段选择子是放在CS寄存器里面的,数据段是放在DS寄存器里面的,下图就会设置相应段的段选择子,代码段是8,数据段是0x10就是16,
2025-02-19 11:20:35
629
原创 十分钟掌握最常用的x86汇编语言
movl是四个字节,但它这里比较特殊,它相当于是movzlq,它不仅会改变前面的四个字节,它还会把后面字节扩展成0,而movq就是8个字节,然后再看下面的,把一个64位整数赋给寄存器,把AA赋给dl,这里是把dl赋给al就改变一个字节,然后movs是符号扩展,这里就改变一个字节,并把后面几位做符号扩展,A它符号位是1,所以后面都扩展成1,z是零扩展,首先设置成AA,然后把后面几位扩展成0。寄存器寻址就是把寄存器的值来作为操作数,这里是把ebx的值赋给eax。
2025-02-17 11:33:15
653
原创 使用晶体管/门电路/D触发器实现寄存器和存储器
然后我们来看怎么实现d触发器,在实际的使用d触发器的时候,我们还会加一个load,当load=1的时候,输出才受输入的影响,当load=0的时候,它的输出就保持之前的值,所以我们在前面加一个多路选择器,它的一个输入是新的输入in,一个输入是之前的输出out,当load=1的时候,它的输出就是新的输入in1,当load=0的时候,它的输出就是之前的输出out,就通过一个多路选择器来实现,
2025-02-13 10:55:35
785
原创 加法器的实现:使用晶体管,门电路实现加法
首先我们看1位二进制的加法的实现,下图中a加b结果是sum进位是carry,那么我们通过下面的真值表可以看出来,0+0是等于0的,1+1是等于0的,其他情况相加的结果是1,所以这正好符合异或门的特性,我们把a b输入到一个异或门,它的输出就是a加b的结果sum,然后再看进位,1+1的进位是1,其他情况相加进位都是0,所以这正好符合与门的特性,我们把a b输入到一个与门,那么它的输出就是a+b的进位carry。实现完成以后也看一下结果,看一下它的结果是不是正确的,
2025-01-24 09:53:38
1709
原创 基本门电路的实现:使用晶体管verilog实现门电路
在verilog里面语句的前后顺序是没有关系的,它只是描述这些门电路之间是怎么连接的,比如下面的代码,g1这个异或门,它的输入是a b输出是s1,g1是连接到g4这个与门的,g1的输出s1作为g4的输入,然后g4是连接到g5的,g4的输出c2是作为g5的输入,所以你去改变这些语句的前后顺序是不会去改变这种连接顺序的。而FPGA是基于一种查找表的结构,叫做LUT, LUT本质上是一个RAM,RAM的内容是可以修改的,可以通过地址来寻址,我们可以把a b c的输入比如都输入0作为RAM的地址,
2025-01-23 17:15:22
887
原创 计算机系统概述:门电路,继电器,真空管和晶体管的工作原理
比如我们看一下怎么执行1+1=2这个程序,它编译后会编译成4条汇编指令,我们假设这四条汇编指令是存放在M0到M3里面的,然后两个操作数1是存放在M40跟M41里的,最开始的时候PC是指向M0的,那么在第1个时钟周期CPU首先执行取指的操作,从M0里面取出第一条指令,然后执行第二步译码,解释指令的意思,然后第三步执行指令,把操作数1从M40里面移动到R0寄存器里面,然后第四步是回写,这条指令不需要回写。
2025-01-12 15:43:24
2004
原创 自己动手编写CPU,操作系统,算法与数据结构,数据库,计算机网络,TCP/IP协议栈,软件工程,设计模式,编译器.
计算机科学基础学习指南:从零编写CPU,操作系统,算法与数据结构,数据库,计算机网络,TCP/IP协议栈,软件工程,设计模式,编译器.
2024-02-07 15:30:49
1822
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人