1,org XXX: 表示从CS:XXX的地方开始定位
如:
org 1000h
pg0:
org 2000h
pg1:
mov ds,[pg0+0x5] ;表示ds=[cs:1000h+0x5]
寻址的段对应:
存取方式 默认段 偏移地址 段超越
取指令 CS IP - - - - 对应指令:jmp,call,ret,iret,org,XX:
堆栈操作 SS SP - - - -
源串 DS SI CS,ES,SS
目的串 ES DI - - - -
BP SS (EA) CS,DS,ES
一般数据 BX DS (EA) CS,ES,SS 如:mov [1234h],0
2,call = push cs, push eip+x, jmp cs:eip (x为call指令长度+1)
ret = pop eip, pop cs, jmp cs:eip
int n = pushf, push cs, push ip+x, jmp [0x0:n<<2+2]:[0x0:n<<2]
iret = pop eip, pop cs, popf, jmp cs:eip
3,gdt基本址在gdr中,ldt表的基址是一个描述符,在gdt中,而ldr放在gdt中描述符的选择子.
新建进程时需要建ldt和tss并加入到gdt中,ldtr保存当前进程在gdt中的索引,切换进程只需
长跳到gdt中tss段描述符就行了.cpu会借助tr寄存器(原进程选择子)保存原进程状态.
1、RPL 选择子当中的权限位确定的权限
2、CPL 特指CS中的选择子当中的权限位确定的权限
3、EPL EPL=Max(RPL,CPL),即RPL和CPL中数值较大的,或说权限等级较小的
4、DPL 描述符中的权限位确定的权限
5、PL 泛指以上4种特权级
6、任务特权 =CPL
7、I/O特权 由EFLAGS寄存器的位13、14确定的权限
8、一致代码段 一种特殊的代码段,它在CPL>=DPL时允许访问
正常的代码段在CPL=DPL RPL<=DPL时才允许访问
4, 缓冲区就是不会被换出页的内存区
N, LINUX操作系统实现简要步骤(操作系统的本质就是提供一堆服务而避免每个程序重复劳动)
0,Boot(引导程序)被BIOS引导到0x7C00处并运行
1, 装入启动扇取和内核扇区.
2, 从BIOS取得硬件信息.存好供内核使用
3,进入保护模式步骤:
a,关中断
b,设置8259A PIC,屏蔽可屏蔽中断
c,加载idt到idtr,并让idt中每个描述符指向一个缺省门(中段处理)
d,加载gdt到gdtr
e,开分段,设置cr0的pe位(第1位)
f,设置各段寄存器(ds,es,ss,fs,gs)
g,设置页目录和页表并填充每一项
h,开分页,设置cr0的pg位(第31位)
4,可以跳到前面加载到内存的内核了.
5,分配和界定可用的内存
6,初始化内核各个模块
7,将自己移到任务段0中运行,再创建进程1.
8,进程1将进行应用环境初始化.并执行Shell登录程序
6,对分页的理解:首先理解一个概念,就是32位能寻址4GB,不一定直接去寻,所谓平坦其实被后却不平.
设想有个目录,里面放了1024个表的地址,每个表放了1024个页的地址.那么这32位线性地址就被分割
成三个索引了.
[高10位] [中10位] [低12位]
目录项索引 表项索引 页内索引
为什么这么分呢?原因很简单,目录和表的项是确定的,而每项的大小又是固定4BIT,所以只须知道是这1024
项中哪一个项就OK了.固正好用10位够寻1024项. 然而对页内的索引却不然,因为你无法得到每项数据或
指令确切大小(其实这只是个附属原因),页还能再分吗? 这样正好也寻址4GB,页目录的基址由CR3给出.
所以要训练自己对保护模式的理解.看到一个地址,第一个概念就是它被分为三段.
7,理解保护多任务的核心就是每个任务(进程)都有自己的页目录(其实就是拥有自己的整个4G内存),有自己的LDT,
有自己CPU寄存器.其实这些都是虚的.是TSS的数据结构保存了它们,再切换时恢复它们.
另外,多任务下全局或共享页面的状态如换出换入都是页表项中相应位改变,实质只是在改变数据结构.
分享到:
相关推荐
标题 "Scraps:Pequenos projetos feitos durante os estudos de javascript" 暗示这是一个集合,包含了一些小型的JavaScript项目,可能是某位开发者在学习JavaScript的过程中创建的。这些项目可能涵盖了基础到进阶的...
咕泡——Spring_Cloud_配置 Spring Cloud 配置 Java 中配置 字符类型配置 通用(内置) Java 系统属性(System#getProperties() ) ...OS 环境变量(System#getenv()) ...仅提供了一些零散的配置类型转换
- 其他操作系统如Windows Phone OS、Blackberry OS、Symbian OS等合计占比不到10%。 - **流量与系统分布分析**: - 绝大多数用户的手机流量使用量都在500M以下,这意味着开发者在设计应用时需要考虑流量消耗问题,...
4. **内存碎片管理**:随着时间的推移,内存中的空闲区域可能会变得零散,导致效率降低,这就是内存碎片。内存管理系统需要采取措施,如紧凑(compacting)或使用不同的分配策略,来减少碎片的影响。 5. **虚拟内存...
通过他在IBM公司SYSTEM/360家族和OS/360项目中的管理经验,揭示了软件开发中的诸多陷阱和误区。书中强调了软件项目管理的关键点,尤其是对于大型项目来说,管理方式与一般工程项目的管理有显著差异。 首先,书中...
文章作者着重强调了操作系统和实时操作系统的概念,特别是学习了实时操作系统μC/OS,通过购买书籍和分析代码,逐步理解和掌握了进程等概念。 6. 学习资源的筛选和利用: 作者提到,虽然下载了大量技术资料,但他有...
对于追求新颖体验的极客,那些具有独特UI设计和创新功能的发行版,如Elementary OS或Deepin Linux,也是一个好选择。 原则2:选择合适的教材或导师 Linux的学习难度不小,光靠零散的在线教程往往不足以深入理解。一...
51CITY OS-POS 是一个基于视频融合技术的视觉感知系统,旨在解决传统园区视频监控系统中的痛点问题,如难以将零散的分镜头视频与其实际地理位置对应、无法对大场景进行全局实时监测和历史事件的快速回溯查找等。...
不过,我会尝试根据这些零散的信息点,提供一些相关知识点的汇总。 1. 操作系统和软件: - Windows 10:微软推出的最新一代操作系统,具有更佳的用户界面和集成的云计算服务。 - DOS(磁盘操作系统):早期的操作...
在 HPE 3PAR OS 3.2.x 中,去重复技术的实现基于 TDVV(Thin Deduplication Volume)和 DDC(Deduplication Domain Controller)技术。TDVV 是一个 thin deduplication volume,用于存储去重复后的数据。DDC 是一个 ...
珍妮特·日期时间(Janet ...也就是说,此模块中的任何功能都有保证:如果它返回表示日期时间的结构,则该结构的键应与(os/date)返回的键相同,并且它们的值应与相同的语义(例如,在所有情况下数字值都应索引为0).x
4. 华为鸿蒙OS与Arm架构的长期前景:华为即将发布鸿蒙OS 2.0系统,许多华为手机将可升级至该系统,以软件生态构建作为重点。此外,华为推动PKS和鲲鹏生态的融合,这基于ARM架构,有助于在芯片受制裁的背景下,保持...
零散进程杀死所有不应运行的用户进程。 这有助于信息亭和共享使用Mac OS 10.9+的计算机。 存在一个错误,使注销的用户可以运行多个进程。 主要保留4个进程,但发现有更多进程在运行。 (启动,cfprefsd,distnoted,...
- **解决方案**:引入基础的运维工具和平台,将零散的命令行操作整合为脚本,提高效率并减少错误率。 3. **平台化运维阶段**:随着技术的发展,运维工作开始使用更加集成化的平台来进行管理。 - **面临的挑战**:...
由于提供的文件内容包含了大量零散的字符、数字、字母组合,以及可能是计算机操作系统相关的选择题答案和选项,信息显得杂乱无章且难以构成连贯的知识点。但是,我会尽力从中提炼出可能与计算机操作系统相关的知识点...
从这些零散的片段中可以提取出以下知识点: 1. 计算机历史与重要发明 文件内容提到了1946年,这可能是指ENIAC(电子数值积分计算机)的年份,它是第一台通用电子数字计算机。同样,1952、1959和1962也可能是其他...
2. **内存碎片整理**:随着时间的推移,内存中的数据分配可能会变得零散,导致内存碎片。内存优化工具可以检测并重组这些碎片,使内存分配更加高效。 3. **后台进程管理**:有些内存优化工具可以帮助用户管理后台...
3. **处理零散文件**:如果最后一个小文件夹无法填满设定的数量(如最后一个子文件夹只有499个文件),应有特殊处理策略,如单独处理或与前一个子文件夹合并。 4. **错误处理和日志记录**:程序应具有良好的错误...
由于文件内容是OCR扫描出的杂乱文本,包含大量字母、数字、符号和零散的词汇,文档的具体含义和上下文无法完全确定。但是,我们可以尝试从中提炼一些与信息技术相关的知识点。 首先,我们可以看到有多个与操作系统...
- **紧凑**:通过移动内存中的数据,合并零散的空闲内存区域。 - **动态重定位**:在程序执行过程中动态地将逻辑地址转换为物理地址。 #### 十四、对换 - **定义**:将内存中暂时不运行的进程或程序调出到磁盘上,...