- 博客(18)
- 资源 (12)
- 收藏
- 关注
原创 VScode配置makefile工程(以ucosii在Win32上的应用示例)
(1)修改生成(待调试)的目标程序: "program": "${workspaceFolder}\\Ports\\80x86\\WIN32\\GCC-MINGW\\examples\\example0\\test.exe",注:${workspaceFolder} 表示的是.vscode 目录的上一级目录。注:前提是设置环境变量PATH: gcc.exe gdb.exe。二. 编写好makefile文件,试验ok;2. examples0下的makefile。三. 设置make编译命令。
2024-09-05 17:54:18
300
原创 操作系统学习与实践6:由实模式切换到保护模式
保护模式应该提供内存保护。通过定义内存的使用方式,我们可以确保某些内存位置不能被修改或作为代码执行。80x86 处理器根据全局描述符表 (GDT) 映射内存区域。。如果不遵循 GDT,处理器将生成一般保护故障 (GPF) 异常。因为我们没有设置中断处理程序,所以这会导致三重错误。(3)全局描述符表 (GDT)全局描述符表 (GDT) 定义全局内存映射。它定义了哪些内存可以被执行(代码描述符),以及哪些区域包含数据(数据描述符)。就 GDT 而言,它描述了起始地址和基地址、段限制,甚至虚拟内存。
2024-05-01 22:26:29
488
2
原创 操作系统学习与实践5:操作系统C内核——调试工具printf
3) 在被调用函数内部,因为bp不变,所以输入的参数使用[bp-n]代替,首先空出一块区域存放子函数的返回值 (sub sp,2;2)进入子函数(被调用函数),保存旧的堆栈结构地址,并将bp指向新的堆栈底 (mov bp, sp),到这里我们已经准备好执行被调用函数内部了。3. 完成了由汇编转向C语言入口程序cstart_()地方(asm如何调用C,如何编译链接16位实模式下的C语言),- 使用的寄存器:EAX,ECX,EDX由调用者保存原始值,函数调用结束,返回前恢复。(2)CDECL汇编示例。
2024-04-27 22:44:00
330
原创 操作系统学习与实践4: 实现由汇编切换到C语言的bootloader
1. 将前面部分代码进行复制为part4,并在src/bootloader目录下创建两个子目录stage1,stage2,将前面的boot.asm 移动到statge1中,并将其中的kernel.bin 修改为stage2.因为bootloader越来越复杂,所以拟选择C语言来编写bootloader,程序在切换到保护模式之前,运行的程序是实模式,需要将其编译为实模式下的16位代码。内核文件在根目录中的名称。目前我们仅仅完成了第三项,我们还没有收集系统信息,也没有将系统转到保护模式,仍处于实模式状态。
2024-04-24 21:51:06
764
原创 Windows Home版本实现远程桌面——RDP Wrapper,及由于更新导致不可用的解决方法:以win11 22631.3593为例
2. 最新的ini文件下载地址。(查找历史ini文件)
2024-04-11 19:04:53
4880
2
原创 操作系统学习与实践3: 基于fat12文件系统实现二阶段启动OS
Root Directory存放的起始位置为1+18=19扇区,Root diectory中存放的目录/文件记录总数为224,一条记录为32个字节,总的字节数为224*32=7168字节,则Root Directory占用 (224*32)/ 512 = 14 扇区;如下数据区的文件的第一个簇为3号,我们知道:簇号从2开始编号的,所以Data的第一个扇区号为: 1 + 18 +14 + (3-2)* 2 = 35.有两个fat区,每个fat区大小为19个扇区,则共有18个扇区存放FAT。
2024-04-09 23:02:42
361
原创 操作系统学习与实践2: 分两个阶段启动OS(bootloader+kernel)
磁盘中的文件,尤其是可执行文件,按照4KB大小划分成块,叫做页帧。OS内的文件系统找到扇区后,不会只加载一个扇区到内存,而是以1KB,2KB,4KB为基本单位加载到内存。多个磁头同步摆动,确认磁道(柱面)后停止,然后确认磁头(也就相当于盘面),盘面旋转,确认是当前磁道的哪个扇区。原因:局部性原理->访问的目标数据时,目标数据附近的数据,也有极大的概率会被访问到。补充:每个扇区数据量一样,但不同磁道的扇区面积不一样,所以数据密度也不一样。在物理结构上,用CHS定位扇区,在逻辑结构上,用LBA地址定位。
2024-04-06 09:11:24
691
1
原创 操作系统学习与实践1: 构建HelloWold,展示OS启动过程
1. 整体上操作系统向下管理硬件,向上为用户/应用提供服务,总体上功能分为:(1)CPU管理:主要是程序的执行,如中断、进程、调度算法等。(2)内存管理:主要对ROM、RAM等的管理,包括分配内存、释放内存、内存保护。(3)设备管理:即IO设备,包括FLASH, 硬盘、USB、鼠标、键盘、显示器等读写。(4)文件系统:主要是对数据存储管理,包括读写操作。(5)UI界面: 包括shell命令行和图形化操作界面。(6)信息安全: 授权访问管理,如用户、角色权限访问管理。2. 操作系统启动过程。
2024-03-31 17:02:31
707
1
原创 windows下调用svn diff,实现对多个文件目录下的包含特定字符串的csv格式的所有文件版本进行比较,并将结果输出到一个文件
执行完命令后,result.txt 文件中将会包含所有符合条件的文件及其版本差异信息。
2023-05-26 07:12:36
583
1
原创 vbs编写读写excel数据
要操作多个 Excel 文件,可以使用循环语句遍历文件列表,并在每次迭代中打开一个文件进行读取和处理。要将处理后的数据输出到一个新的 Excel 文件中,可以使用。对象来创建和写入新文件。vbs编写读写excel文件。
2023-05-26 07:08:25
2615
1
原创 VBS 中读写 csv 格式的中文文件
需要注意的是,如果 csv 文件中包含中文,则需要使用 UTF-8 编码进行读写操作。可以在打开文件时指定。参数,表示采用系统默认编码;对象,手动指定编码方式。表示以只读方式打开文件,第三个参数。表示在文件末尾追加内容,第三个参数。表示不创建新文件,第四个参数。表示采用系统默认编码。
2023-05-26 06:57:32
1334
1
原创 扩展欧几里得归纳算法中的推导公式解释
a'm + b'n = q(am+bn) + r =>r = (a'-qa)m + (b'-qb)n (公式3)。等式: a'm+b'n =c (公式1)和 am+bn= d(公式2)总是成立。公式3不改变 公式1和2的形式, 即公式1和2成立,则3也成立(注:公式3表示当前的值)。中的除法算法: n = qd + r 且 0......
2022-08-27 17:32:03
120
原创 计算机基础与组成原理学习
计算机组成原理二进制背后的故事盖房子二进制工作机制故事——烽火告警二机制与十进制转换二进制运算----原码/反码/补码计算机基本原理基本概念四位计算机组成指令集计算机优化——更快总线分级存储指令流水IO二进制背后的故事盖房子在很久很久以前,有一个原始部落,由一群头脑简单却四肢发达的人群集结而成,他们通过个人力量划分身份等级,最终决出一位部落首领,八位部落勇士,按照个人实力分为八个等级,和我...
2019-07-31 11:47:11
381
原创 PowerPC 汇编指令小结
1. 寄存器模型r0, register 0, is a scratch register. It's often used for a temporary. r1 is the stack pointer. r2 is reserved for some multithreaded global variable magic. r3 is used to return values ...
2019-05-03 22:01:52
2207
转载 PowerPC 汇编编程入门(3)
In this chapter we are going to be looking at using the stack. We’ll cover pushing stuff onto the stack, as well as popping it back off. As we learn more and more about the stack, you’ll see why it’s ...
2019-05-03 16:12:19
262
转载 PowerPC 汇编编程入门(2)
The Count RegisterThe count register is 32 bit register that is most commonly used to hold the counter for a loop, although you can use it for anything you want. Using the counter register, or CTR, i...
2019-05-03 16:00:01
500
翻译 PowerPC 汇编编程入门
参考:https://community.wemod.com/t/powerpc-beginners-tutorial/20391. r3-r10寄存器存储函数的第一个到第8个参数,同时r3还存储返回值,试验: 2. 函数调用,参数为结构体,如下图所示:This isn’t work out so cleanly becau...
2019-05-03 15:04:27
756
vs2005下的cppunit创建向导CPPUnitProjectWizard
2011-02-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人