最新文章

现在已经走到了执行第一个任务的地方了,如下 ``` main() |-->init_kernel() | |-->kernel() -> p_0() -> DosExec(..."COMMAND.COM".
2023-02-04
/
0 评论
/ /
29 阅读
KERNAL.asm跳转到Main.c中的main函数,下面代码可读性就很强了,跟踪代码的执行流程应该不是难事。 我想说的是,kernel定义了很多全局变量,掌握了这些变量的用处,理解kernel基本上就没什么障碍了。 OK,下面主要以变量使用为切入点分析kernel, 几个关键的
2023-02-04
/
0 评论
/ /
36 阅读
终于开始KERNEL代码分析了 这一节关注KERNEL.ASM文件,如前一节所述,KERNEL.ASM代码主要目的就是将INIT段copy 到内存高处,跳转到高处的INIT段执行,旧的INIT段被用作内核数据区和Stack区。 ![pic](/storage/image/2023/02/
2023-02-04
/
0 评论
/ /
28 阅读
虽然CPU已经开始执行KERNEL代码了,先不急分析KERNEL。 不知道对于上节boot将KERNEL放置在0x600处还有没有其它疑问? 必须要放到0x600处吗? ``` 如果KERNEL.SYS已经给定好了,那boot必须得将KERNEL放到0x600处。 编译KERN
2023-02-04
/
0 评论
/ /
31 阅读
好了,下面开始分析boot.bin了,放置在软盘的前512字节中。 如何判断一个软盘是引导软盘呢? 这个任务是交给在BIOS的。 BIOS会读取软盘的前512字节,如果第511个,512个字节的内容为0x55AA,就认定这是个引导软盘,将这512字节放置在内存0x7c00处,并跳转执行。
2023-02-04
/
0 评论
/ /
33 阅读
# 前言 本文使用通俗易懂的表述,深入浅出地介绍DPMI和DOS Extender(以DOS/4GW为例)的理论和基本使用技术,旨在让对DPMI不太了解的程序员能了解DPMI在C语言中的实现方法。限于本人水平及资料匮乏,文中难免存在不当之处,望各位读者不吝赐教。 # 什么是DPMI和DO
2023-02-04
/
0 评论
/ /
56 阅读
# 需求 在做`电火花线切割机 WEDM`项目的时候,用windows系统做的软件运行一段时间后,总会有误差,误差的来源是由于windows的多任务长时间积累变得越来越大,线切割机这种精密的设备,误差控制严格,现在市面上很多机器用的是windows或者linux的,误差问题从底层基本上没办法避
2023-02-04
/
0 评论
/ /
62 阅读
前言图形界面(GUI)几乎被现在所有的主流操作系统及应用程序使用,这是因为它提供了极好的人机交互接口,微软大名鼎鼎的Windows就是一个非常成功而明显的例子,据说微软的理念有一条就是“让电脑变得越来越傻瓜,任何人都可以操作它”,很显然,要实现这个梦想,GUI界面是必须的。如果有操作系统的支持,编写
2021-08-28
/
0 评论
/ /
71 阅读
现在,很多嵌入式系统都是在 Linux 上运行的。但是,在很久很久以前,嵌入式系统要么在一个定制的专有的平台上运行,要么在 DOS 上运行。官网地址:www.freedos.org 官网介绍,大多数人使用 FreeDOS 来完成三项主要任务:玩经典的 DOS 游戏运行老式的 DOS 软件运行一款嵌入
2022-06-28
/
0 评论
/ /
51 阅读
常用的八个命令命令解释R查看和修改寄存器D查看内存单元E修改内存单元A输入汇编指令U反汇编,将机器指令变为汇编指令T/P单步执行G连续执行Q退出命令的详细介绍R命令 — 查看和修改寄存器R命令有两种用法:直接键入R — 显示CPU所有的寄存器和标志位在R后面跟上寄存器名 — 先会显示后面跟上的寄存器
2022-06-27
/
0 评论
/ /
34 阅读