频道栏目
首页 > 资讯 > 其他 > 正文

自己动手写操作系统:1.cpu中寄存器、汇编语言及其它基础知识

17-08-10        来源:[db:作者]  
收藏   我要投稿

一、寄存器

16位寄存器,原来都是8位的,为了表示区分,在后面加上后缀 X 表示 extent 扩展的意思
AX accumulator 累加寄存器 AH 高八位 AL 低八位
CX counter 计数寄存器 CH 高八位 CL 低八位
DX data数据寄存器 DH 高八位 DL 低八位
BX base 栈指针寄存器 BH 高八位 BL 低八位

BP base pointer 基址指针寄存器
SI sorce index 源変址寄存器
DI destination index 目的変址寄存器

16位的段寄存器
segment register,用于基于16位寄存器的32位寻址
ES extra segment 附加段寄存器
CS code segment代码段寄存器
SS stack segment 栈段寄存器
DS data segment 数据段寄存器
FS segment part2
GS segment part3

32位寄存器表示
EAX ECX EDX EBX 前缀E表示 extend 扩展的意思 ,其中这些寄存器的低16位就是去掉E表示的16为的寄存器,其中高16为没有明确的名字直接使用


二、汇编指令介绍
MOV 复制操作 源地址和目的地址的数据长度必须相同 可以根据现有的寄存器进行隐式转化,赋值之后保留原来寄存器中的值
ADD 加法操作
ADD SI,1 等于SI=SI+1
CMP 注:是if语句的一部分
CMP AL,0 等于 if(AL==0) 下面通常跟着一条指令作为一个整体
JE 跳转指令 相当于C中的 goto操作

 

三、其他相关背景知识
1.内存

超大规模的存储单元 属于外部存储区
CPU 内存管理芯片 内存

32位cpu容量很小 只有40字节左右 ,需要内存的帮助
程序实际上是放在内存中的
因此,cpu中的寄存器负责运算,而运算所需要的内容存放在内存中
能够用作存放地址值的寄存器,即能够时候[]去取出地址中值的寄存器非常有限,只有BX BP SI DI (可以看作指针变量)
可以通过关键词 BYTE WORD DWORD 来指定内存中的值的类型 ,BYTE[SI]

2.BIOS
基本输入输入系统,烧写在主板的ROM中,为操作系统开发人员准备的一些基本的函数集合
通过INT可以调用一些函数

3.启动区内容的装载地址
0x00007c00 - 0x00007dff

启动区指软盘的第一个扇区,512字节,关于软驱的知识,后面再继续介绍,我们写的操作系统模拟软盘的存储结构来实现。

相关TAG标签
上一篇:python入门(一)
下一篇:IntelliJ Rust - 安装Rust插件到idea
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站