首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
DIY微型操作系统(2)—— 寄存器赋值
】的更多相关文章
DIY微型操作系统(2)—— 寄存器赋值
书上已经为我们提供了最简单的“hello world”程序了 相信大家玩的也挺欢乐的,不过这只是引导扇区的雏形 而且如果找不到完整的光盘上的源代码,新手估计很难学的下去 所以之后文中也会尽量贴出代码 不过在继续开始之前,我们有另外意见很重要的事情要做: 让所有东西都在掌控之中! 如果你觉得觉得有几个特殊寄存器的值不知道怎么给,那么 接下来我们要看看怎么样随心所欲地给所有寄存器赋值 Intel x86系列寄存器与赋值方式 (存放到内存顺序:低地址对低地址) 32bit名称 16bit名称 注释 赋…
DIY微型操作系统(1)—— 开发的准备
这个连载是根据<30天自制操作系统>这本书所写 只是类似于补充之类的东西,要详细的讲解,还请参照书上的内容 所以,首先我们要感谢作者川合秀实先生!(鞠躬) 为什么我想写这么一个补充的? 因为这本书的所使用的软件,对于2014年来说,确实是有点旧了. 但是如果不用川合先生的那些方便的工具,开发会变得很麻烦. 所以,在开始之前就有一个大难题——用什么工具开发? 所以就有了这篇补充 这篇补充的目的是: 使用能在网上容易找到的软件来开发出操作系统. 我们不求完美,但只求最后能在U盘上插在现实的电脑上启…
写在连载之前——DIY微型操作系统篇
这个博客开了这么久都没写过什么东西.可能是因为我想写的东西在网上都能找得到,所以自己也懒得去写了. 但是这次当我在看<30天自制操作系统>这本书的时候发现,如果不用作者原版的光盘软件,要自己摸索着写完整个操作系统的难度还挺大. 最关键的是这次很多东西在网上没有现成的答案. 所以这次就决定开始写连载. 记录一下学习过程的同时,也为将来想看这本书的读者提供一些有用的信息. (由于最近也很多东西忙,所以只能争取每周一更,希望大家谅解(+﹏+)~)…
用JAVA制作微型操作系统4月23日情况
弄好了一个自认为十分精美的界面,但本想着昨天就在开始按钮上先套入控制jp222面板上的jb2标签上的时间更新,这按钮起到开始线程的作用(我认为按钮应该可以通过t.start()来触发线程,结果不知为什没有触发) 结果在套入一层线程后,我就直接将线程设置为自动启动,但jp222面板上的jb2标签上的时间没有更新,更怕的是由于没有设置线程更新的速度(应该跳慢一点),就不断的刷新面板 结果造成了怎么按都没反应的情况出现 哎,希望大家引以为戒 不说了,先把代码改过再说…
《30天自制操作系统》笔记4 --- (Day2 下节)了解如何用汇编写操作系统中的HelloWorld
关于上一节,我测试了发现3e.4c.4e都OK ,4b 4d 4f都进不去系统还把qemu卡死了. 50不会输出HelloWorld,可能需要hex偶数且在0x3e~4f区间吧.上节复制并运行命令如下: copy /y helloos-Copy.img ..\z_tools\qemu\fdimage0.bin && ..\z_tools\make.exe -C ../z_tools/qemu 先不管上一节了,这节我们写HelloWorld 看不清请右击“从新窗口打开图片”,下为P29 P3…
《30天自制操作系统》笔记5 --- (Day3)
这个专题荒废了许久,今天补点东西 不够准确的小结 用汇编来开发操作系统,就是使用汇编本身的功能再加上BIOS中断提供的功能来完成功能的过程. 汇编本身的功能不够,毕竟没有外部IO,所以通过给多个寄存器赋值,然后调用BIOS中断,让主板/BIOS去读取这些状态/值,然后BIOS根据值执行不同的功能(猜的) 至于如何用汇编控制电路,大概也是用寄存器和电路设计吧 详解:为什么计算机能读懂 1 和 0 ? - 知乎 主要内容 一个月后再写 待续...…
操作系统(3)实验相关原理——bootloader启动uCore
x86启动顺序 CS+EIP决定启动地址. CS部分后面又4个0,相当于是左移了4位.总之就是要让CS左移4位之后加上EIP来得到要跳转的地址. 0x7c00地方开始的512字节的内容就是bootloader.这么做的原因是BIOS只能加载一个扇区,所以只能通过bootloader来加载系统. 段机制 这边uCore没有实现段机制,因为可以通过页机制来很方便地实现. 但是还是绕不开段模式,只要启了保护模式段就enable了(而且页机制基于段基址实现),所以还是要建立好段机制.下面这种映射关系近似…
【STM32】MDK中寄存器地址名称映射分析
对于MCU,一切底层配置,最终都是在配置寄存器 51单片机访问地址 51单片机经常会引用一个reg51.h的头文件.下面看看它是怎么把名字和寄存器联系在一起的: 1 sfr p0=0x80; 2 p0=0x00; sfr是一种扩充数据类型,使用一个内存单位,值域为0-255.利用它可以访问51单片机内部所有的特殊功能寄存器.前一句"sfr p0=0x80"就是将P0映射到地址0x80.以后对P0的读写操作即使对0x80地址对应的单元进行读写操作:注意:单独的地址是不能进行操作的,必须对…
arm: 使用结构体操作寄存器
使用结构体操作寄存器: //寄存器赋值和取值的时候,要注意寄存器的长度,有的寄存器的值只有8位. //还要注意,使用volatile修饰寄存器变量.volatile 参考http://www.cnblogs.com/mylinux/p/4630749.html //addr.h typedef unsigned int S3C24X0_REG32; /* NAND FLASH (see S3C2410 manual chapter 6) */ typedef struct { S3C24X0_R…
对stm32寄存器的理解(个人理解,大神轻喷)
学习了stm32有一年了,今天想来写写自己对寄存器的理解,帮助那些有志学习stm32的朋友们少走一些弯路. --------------------------------------------------------------------------------------------------------------------------------------- 问题一:stm32位寄存器是什么意思? 32指的是二进制的32位,也就是每一个寄存器是有32位二进制组成(当然部分寄存器…