windows程序设计
基础知识
字符集
我觉得字符集这里要分为两个部分:
字符集编码: 一个字符对应一个数字值, 不同的字符集对应的编码是不一样的 比如 ascll 编码 和 Unicode 和 ansi
编码方案: 如何转换计算机里面的字节数据到编码 比如 Unicode的转换就有 UTF-8 UTF-16 UTF-32
asni编码 根据不同国家对应的编码方案是不同的, 字符集也不同
字符和宽字符
宽字符使用Unicode编码 统一两个字节 字符的话一般使用多字节编码ansi
12wchar* "c语言" // 在Unicode下面这个是8字节char* "c语言" // 在ansi 里面是6字节 c一个 \0 一个 其他都是双字节
注意区分代码编码 和 变量本身编码 这是两个不同的东西, 代码的编码取决于你的选择, 但是变量的编码一般不是你决定的, 但是你的代码编码会影响到变量里面的值
比如 你的代码文件采用的是asni 但是对于 wchar* “c语言” 文件里面它是6字节 但是内存里面它是8字节 (可以这样理解), 如果代码文件编码 ...
操作系统镜像还原
实模式下的中断向量 占4个字节 段基址+段偏移地址(中断处理程序地址) 中断向量表最多1024 字节, 因此最多256中断处理程序
关于电脑的一些基本硬件
前言
最近本人心血来潮想自己diy主机玩玩, 然后呢我只知道电脑需要些什么, 但是他们的型号啊, 搭配关系啊, 我是完全不知道的, 因此就记录一下
主板
主板型号通常由几个部分组成,每个部分代表不同的信息,帮助用户了解主板的规格和功能。以下是主板型号中常见的组成部分及其含义:
1. 品牌名称
代表主板的制造商或品牌,例如华硕(ASUS)、技嘉(Gigabyte)、微星(MSI)等。品牌名称通常是型号的第一个部分,用来识别主板的生产厂商。
2. 芯片组代号
芯片组是主板的核心部分之一,影响主板的性能和功能支持。常见的芯片组代号是字母和数字的组合,表示主板采用的芯片组类型。
例子:
Intel平台:Z790、B660、H510 等(Z代表高端,B和H则代表中低端)。
AMD平台:X670、B550、A320 等(X代表高端,B和A表示中低端)。
3. 平台和处理器代号
有时型号中会包含与支持的处理器类型或平台相关的信息。特别是在不同代数的CPU出现时,主板厂商会区分主板型号。例如,Intel的 LGA 1700 或 AMD 的 AM5 插槽。
例子:
Intel:LG ...
自制操作系统
启动
BIOS
basic input output system 基本输入输出系统
BIOS启动流程: 加电自检, 然后读出启动盘的第一个扇区 到 0x7c00 位置 然后调整到 0x7c00位置执行代码, 这个时候把执行权限交给我们, 我们需要将代码写入到第一个扇区, 然后将操作系统加载到内存中
此时CPU处于的模式是在实模式下 , 在这个模式下我们能够直接操作内存, 想怎么操作怎么操作, 但是只有1M的寻址空间
中断
中断处理流程
中断产生和检测:
当外部设备或其他源产生中断信号时,外部中断控制器(如PIC或APIC)负责接收这些信号。
当CPU完成当前执行的指令后,它会检查中断控制器是否标记了任何待处理的中断。
中断向量和中断服务例程(ISR)的查找:
如果中断被允许(即处理器的中断标志IF位为1),CPU会从中断控制器获取一个中断向量号。
使用这个中断向量号,CPU会查找IDT(中断描述符表),以确定相应的中断服务例程的地址。
状态保存和中断响应:
在跳转到中断服务例程之前,CPU自动保存当前的代码段寄存器(CS)和指令指针(IP)到堆栈中。 ...
vscode的使用
前言
这里主要介绍一些配置项和好用插件
外观
主题选择
文件主题
vscode-icons
Material Icon Theme
插件
运行和调试
vscode 是通过 配置launch.json 和 task.json 来 进行调试和 运行程序
python配置
123456789101112131415161718192021{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python 调试程序: 当前文件", // 当前配置名字 "type": "debugpy", // 类型 "req ...
makefile学习
前言
什么是 Makefile?
Makefile 是一个用来自动化构建项目的简单工具,通常用在编译和链接程序的过程中,但它也可以用来执行任何你想自动化的任务。Makefile 包含一系列规则和指令,它们定义了如何构建项目和执行其他相关任务。
为什么使用 Makefile?
自动化:Makefile 可以自动化许多编程任务,比如编译源代码、生成文档、或执行测试等。
依赖跟踪:make 工具可以自动检测文件之间的依赖关系,只重新构建实际需要更新的部分,而不是整个项目。
**跨平台:**虽然 make 最初是为 Unix 和类 Unix 系统开发的,但现在也可用于许多其他操作系统。
Makefile 的基本组成
目标(Target): 是你想完成的任务名称。比如:编译源代码可以是一个目标。
依赖(Dependencies): 是完成任务所需的前置条件,通常是源文件或其他目标。
命令(Commands): 是 make 执行的实际命令,它们指定了如何从源文件创建目标输出。
伪目标(Phony target): 伪目标并不代表实际的文件名,而是一个执行特定任务的标签名称。伪目标没有对应的 ...
英语短语积累
stay out of 置身事外
above all 尤其, 重要的是
at all 根本,完全不, 一点也不
for sure 肯定地
out to 表示意图目的 比如 out to get me 想要对付我 也可以以表示 方向 比如 go out to somewhere
just as 正如
make sense 有意义 讲得通
work through 解决 完成 修复
be left to 由… 决定 被留下
responsible for 对…负责,有责任
an array of 一批
viewed against 与什么…相比 ,审视
owe to 将…归因于…
call for 呼吁;提倡;需要
think of 想象;设想 考虑到;
think of … as 把…看做
so far as 就…而言; 只要;就
in so far as 在…范围内
in favor of 有利于;支持;赞同
such as 例如;比如;像 such a good boy as you 比如你这样的男孩
right ...
8086汇编学习
前言
在考研过程中好好学了一下计算机组成原理, 让我对底层这些东西产生了浓厚的兴趣, 因此就先学学基础汇编
本文章 是掺杂8086 和 x86一起总结的, 可能有些地方在8086里面不具备
基本信息
机器字长为 16位 存储字长为16位 地址线20根 数据线16根
由于机器字长只有16位, 地址线有20根, 计算物理地址需要特别处理 物理地址 = 段地址*16 + 段内地址 (物理地址表示不唯一)
AX,BX,CX,DX 都是通用寄存器, 用来存放数据 段地址寄存器有: CS DS ES SS 偏移地址寄存器有: SP,BP,SI,DI,IP,BX
CS:IP 指定下一条执行指令的位置, SS:SP 指定栈顶位置 (进栈操作 SP-字节数 放入数据, 出栈操作 拿出数据 SP+数据字节数) DS , ES是数据段位置
数据在内存中都是小端存放
寄存器
下面是8086 CPU的主要寄存器及其英文全称和功能:
AX (Accumulator Register):累加寄存器。
主要用于算数运算和数据传输。
BX ( ...
高等数学
前言
预备知识
函数
反函数
复合函数
函数的四种特性
有界性
单调性
奇偶性
周期性
画图
直角坐标系画图
画极坐标系图
描点法 比较麻烦, 得计算多个角度对应的长度 然后连接起来
画出长度与角度的直角坐标系关系图, 长度是y轴, 角度是x轴, 然后就可以画极坐标图了 , 这样可以很直观的看到角度变化会带来长度的变化
举例:
画出r=a(1−cosθ)(a>0)r=a(1-\cos \theta)(a>0)r=a(1−cosθ)(a>0)
描点法:
画关系图法:
根据参数方程画图
数列极限
定义
四句话: 对于任给正数 x, 存在正整数N, 当 n>N 时, 恒有 | an - a | < x => a是an的极限
性质
数列极限的运算
夹逼准则
单调有界准则
题目
函数极限与连续性
函数极限
函数极限定义
函数极限的性质
极限的四则运算
夹逼准则
洛必达法则
泰勒公式
海涅定义(归结原则)
无穷小
定义
无穷小比阶
运算规则
等价无穷小替换
函数的连续与间断
连续的定义
间断的定义和分类
七种未定式
这7种结果就是 极限 ...
考研英语语法
贵在坚持
前言
趁这次考研, 总结一下大体的英语语法吧.
基本句子知识
词性
英语句子中主要包含以下几种词性:
名词(Nouns):指人、地点、事物、抽象概念。如:“book”(书),“Tom”(汤姆),“city”(城市)等。
动词(Verbs):表示行动、状态或存在。如:“run”(跑),“is”(是),“seem”(似乎)等。
形容词(Adjectives):描述或修饰名词。如:“happy”(快乐的),“blue”(蓝色的)等。
副词(Adverbs):修饰动词、形容词或其他副词,表达方式、时间、地点、原因等。如:“slowly”(慢慢地),“very”(非常)等。
代词(Pronouns):代替名词或短语。如:“he”(他),“it”(它),“they”(他们)等。
介词(Prepositions):表达物体之间的关系。如:“in”(在…里),“on”(在…上),“with”(和…一起)等。
连词(Conjunctions):连接词、短语或句子。如:“and”(和),“but”(但是),“if”(如果)等。
感叹词(Interjectio ...