您的位置:首页 > 理论基础

计算机组成原理二

2014-10-12 15:06 459 查看
1.指令的格式

每条指令等长,均为2个字节

第一个字节的高四位是操作码,低四位作为表示寄存器号

第二个字节是存储单元地址

2.计算机启动过程:

(1)计算机启动后,从BIOS芯片中取出指令,进行执行,这段程序就是在实模式在进行的。

(2)设置CPU中PE=1,操作系统进入保护模式,如果任务需要会进入虚拟8086模式(之间任务的切换,中断返回),不管处在哪一个模式一旦系统复位都会从实模式重新开始。

3.小知识

1985年,Intel公司提出了IA-32的x86体系结构,cpu进入了32位时代,可以内存寻址4G大小空间,同时也引入了虚拟内存管理的概念。x86之所以今天可以保持大的市场份额,是因为x86始终保持着向前兼容的特性,并且不降低性能。

2003年,AMD公司提出了x86-64体系结构,cpu进入了64位时代,理论可以寻址2^64byte,但实际达不到。Intel后来也提出了IA-64体系结构,但与之前32位系统不兼容,所以Intel后来放弃了IA-64体系结构。

在x86-64体系结构中向前兼容的运行模式称为传统模式(Legacy mode),而与之对应的为长模式(Long mode)。

8086中IP寄存器只有16位,所以寻址范围在16K以内,而地址总线位20位,故寻址需要借助于段寄存器。



最终地址计算方法: 逻辑地址 = 段基址<<4 + offset(偏移量)

4.寄存器:

在X86-64中的通用寄存器,其中有4个数据寄存器。



FLAGS标志CPU的运行状态

5. Application for Segment Register(8086) :

Let's take an example :

MOV AX , [3000H]

CPU will notice we need a value in the Memory, so it will firstly visit the Data Segment

first step: get the value of Data Segment in
DS Register we suspect it is 2000H

second step: Physical address = 2000H * 16 + 3000H = 23000H
//3000H is an offset

6.堆栈段

其中SS指定这个区域的起始地址。PUSH和POP指令都是从SP寄存器获得堆栈的段内偏移量,顾名思义其英文表达式也就是:STACK POINTER
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: