X86寄存器组织结构_图文(精)
x86的控制寄存器CR0,CR1,CR2,CR3
x86的控制寄存器CR0,CR1,CR2,CR3状态和控制寄存器组除了EFLAGS、EIP ,还有四个32位的控制寄存器,它们是CR0,CR1,CR2和CR3。
这⼏个寄存器中保存全局性和任务⽆关的机器状态。
CR0中包含了6个预定义标志,0位是保护允许位PE(Protedted Enable),⽤于启动保护模式,如果PE位置1,则保护模式启动,如果PE=0,则在实模式下运⾏。
1位是监控协处理位MP(Moniter coprocessor),它与第3位⼀起决定:当TS=1时操作码WAIT是否产⽣⼀个“协处理器不能使⽤”的出错信号。
第3位是任务转换位(Task Switch),当⼀个任务转换完成之后,⾃动将它置1。
随着TS=1,就不能使⽤协处理器。
CR0的第2位是模拟协处理器位 EM (Emulate coprocessor),如果EM=1,则不能使⽤协处理器,如果EM=0,则允许使⽤协处理器。
第4位是微处理器的扩展类型位ET(Processor Extension Type),其内保存着处理器扩展类型的信息,如果ET=0,则标识系统使⽤的是287协处理器,如果 ET=1,则表⽰系统使⽤的是387浮点协处理器。
CR0的第31位是分页允许位(Paging Enable),它表⽰芯⽚上的分页部件是否允许⼯作。
CR1是未定义的控制寄存器,供将来的处理器使⽤。
CR2是页故障线性地址寄存器,保存最后⼀次出现页故障的全32位线性地址。
CR3是页⽬录基址寄存器,保存页⽬录表的物理地址,页⽬录表总是放在以4K字节为单位的存储器边界上,因此,它的地址的低12位总为0,不起作⽤,即使写上内容,也不会被理会。
这⼏个寄存器是与分页机制密切相关的,因此,在进程管理及虚拟内存管理中会涉及到这⼏个寄存器,读者要记住CR0、CR2及CR3这三个寄存器的内容控制寄存器(CR0~CR3)⽤于控制和确定处理器的操作模式以及当前执⾏任务的特性,如图4-3所⽰。
寄存器结构、存储器管理
08
例: MOV AX, [BX+03H]
CX——Count可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。 例: MOV CX , 200H AGAIN: …… …… LOOP AGAIN ;(CX)-1(CX),结果0转AGAIN DX——Data可以作为数据寄存器使用。 一般在双字长乘除法运算时, 把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位; 对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。 例: MUL BX ; (AX)(BX)(DX)(AX) 例: IN AL , DX
奇偶标志PF(Parity Flag)
若算术运算的结果有溢出,则OF=1;
否则 OF=0
3AH + 7CH=B6H,产生溢出:OF=1 AAH + 7CH=(1)26H,没有溢出:OF=0
溢出标志OF(Overflow Flag)
3AH+7CH=B6H,就是58+124=182,
什么是溢出
处理器内部以补码表示有符号数 8位表达的整数范围是:+127 ~ -128 16位表达的范围是:+32767 ~ -32768 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确
01
AX——(Accumulator)作为累加器。
02
它是算术运算的主要寄存器,
03
所有I/O指令都使用这一寄存器与外部设备交换数据。
04
例: IN AL , 20H
05
OUT 30H , AX
06
BX——Base用作基址寄存器使用。
07
在计算内存储器地址时,经常用来存放基址。
0
X86机的原理构造及技术详解
系统管理模式
Intel首次在80386SL之后引入其x86体系结构。
虚拟V86模式 MMX和之后
1996年Intel的MMX(AMD认为这是矩阵数学扩充Matrix Math Extensions的缩写,但大多数时候都被当成MultiMedia Extension,而Intel从来没有官方宣布过词源)技术出现。尽管这项新的技术得到广泛宣传,但它的精髓是 非常简单的:MMX定义了八个64位SIMD寄存器,与Intel Pentium处理器的FPU堆栈有相重叠。不幸的是,这些 指令无法非常简单地对应到由原来C编译器所产生的脚本中。MMX也只局限于整数的运算。这项技术的缺点导致 MMX在它早期的存在有轻微的影响。现今,MMX通常是用在某些2D影片应用程序中。
历史
[编辑本段]
x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是 发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最 成功的CPU架构。 其他公司也有制造x86架构的处理器,计有Cyrix(现为VIA所收购)、NEC集团、IBM、IDT以及Transmeta。Inte l以外最成功的制造商为AMD,其早先产品Athlon系列处理器的市场份额仅次于Intel Pentium。 8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了32 位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64。 后来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位 时代。 值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被
x86结构
2 x86体系结构寄存器分析
2.1 x86体系结构寄存器简介
32位x86体系结构的所含有的寄存器有如下:
◆4个32位通用寄存器(EAX、EBX、ECX和EDX)
◆2个32位变址和指针寄存器(ESI和EDI) ,2个32位指针寄存器(ESP
和EBP)
◆6个[16位(段选择符)+隐藏部分(描述符缓冲)]段寄存器(ES、CS、SS、
DS、FS和GS)
◆1个32位指令指针寄存器(EIP) ,1个32位标志寄存器(EFlags)
◆2个48位系统表寄存器(GDTR、IDTR)和2个[16位(选择符)+隐藏部分
(描述符缓冲)](LDTR、TR)
◆5个32位控制寄存器(CR0 ~ CR4),CR4是从Pentium CPU开始出现的
◆8个32位调试寄存器(DR0 ~ DR7)
◆8个32位测试寄存器(TR0 ~ TR7)
2.2 通用寄存器
2.2.1 通用寄存器总述
32位CPU有4个32位通用寄存器EAX、EBX、ECX和EDX。
主要用来保存操作数和运算结果等信息。
对于低16位数据的存取,不会影响高16位的数据。
这些低16位的寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。
4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。
程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。
X86架构的寄存器
X86架构的寄存器
在调试过程中,如果要看寄存器的内容的话,需要使⽤到的寄存器还是需要熟悉⼀下的。
32位下的x86_32
2个变址寄存器:ESI、EDI
6个段寄存器:ES、CS、SS、DS、FS、GS
4个数据寄存器:EAX、EBX、ECX、EDX
esp:寄存器存放当前线程的栈顶指针
ebp:寄存器存放当前线程的栈底指针
eip:指令寄存器,下⼀条指令的地址
4个传参使⽤到的寄存器,依次为:EDI、ESI、EDX、ECX。
EAX寄存器作函数返回值。
64位下的x64
64位下有16个寄存器:rax、rbx、rcx、rdx、esi、edi、rbp、rsp、r8、r9、r10、r11、r12、r13、r14、r15。
6个传参寄存器:依次为:rdi、rsi、rdx、rcx、r8、r9
其它
X86下,遵循被调⽤者使⽤规则,函数在调⽤⼦函数之前,保存相关寄存器的内容。
函数调⽤时,参数先⼊栈,接着为返回地址⼊栈,BP寄存器⼊栈、再接着就是⼦函数的局部变量之类的了。
汇编语言第2章80x86计算机组织
控制标志位
• 控制标志位 :DF 方向标志,用于串处理指令处理
▪ DF位为1时,每次操作后使变址寄存器SI和 DI减量,使串处理从高地址向低地址方向处 理:
▪ 当DF位为0时,则使SI和DI增量,使串处理 从低地址向高地址方向处理:
系统标志位
• IF:中断标志。 当IF=1时,允许中断; IF=0时关闭中断
数据的宽度 • 地址总线宽度:用以确定可访问的存储器的最
大范围
地址总线宽度
• 10位:210=1024单元,1K • 20位:220=1024* 210单元=1024K,1M • 24位:224=16*1M,16M • 30位:230=1024M,1G • 32位:232=4G,即4GB
二、一些名词术语(2)
• TF:陷井标志(跟踪标志)。用于单步方式操作 • IOPL:I/O特权级。控制对I/O地址空间访问
段寄存器
• 8086/8088、80286:四个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES
• 80386及后继机型:六个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES、 FS、GS---都是16位
• ZF:零标志。运算结果为0,置1;否则置0。 • CF:进位标志。记录从最高有效位产生的进位值。
最高有效位有进位时置1,否则置0。 • AF:辅助进位标志。记录运算时第3位产生的进位
值。如第3位有进位时置1,否则置0。 • PF:奇偶标志。当结果操作数中1的个数为偶数时置
1,否则置0。
标志符号 举例
段中的某一存储单元的地址 4. SI、DI一般与DS联用:
在串处理指令中,SI和DS联用,DI和ES联用
8086系统的堆栈
• 是存储器中的特殊区域 – 在堆栈段内,“FILO” – SP始终指向栈顶,总是字操作,指示栈顶的 偏移地址; – BP可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息
Intel X86 CPU系列的寄存器-文档资料
这是一个数据结构, 一个任务的所有信 息存储在这各字段 内.这些字段分为 两类:第一: 处理器 只读其中信息的静 态字段集;第二:每 次任务切换时,处 理器将会更新的动 态字段集.
Figure 1: 32-Bit Task-State Segment (TSS)
寄存器分类介绍(19)
----内存管理寄存器
在开发底层系统时,会用到这些寄存器.
寄存器分类介绍(8)
调试寄存器
设置标志位 集中在DR7
寄存器分类介绍(9)
调试寄存器 DR0-DR3:保留32位断点的线性地址. DR6
B0—B3:断点状态的监测 BD:调试寄存器访问监测.置位,表明在指令流中,下一条指令将访问其中 的一个调试寄存器 BS:单步执行标志位 BT:任务转换标志位
CR4:
OSFXSR:置位.表明操作系统支持FXSAVE and FXRSTOR指令 OSXMMEXCPT:置位.表明操作系统支持不可屏蔽的SIMD浮点异常.
寄存器分类介绍(7)
调试寄存器
作用:调试寄存器主要作用是调试应用代码、系统代码、 开发多任务操作系统.来监视代码的运行和处理器的性 能. DR0---DR3:调试地址寄存器 DR4—DR5:保留.还没有定义 DR6: 调试状态寄存器 DR7: 调试控制寄存器
寄存器分类介绍(16)
-------内存管理寄存器
任务管理
系统中,一个任务由两部分组成:任务的运行空间和任务状态段 (TSS).任务的运行空间包括一个代码段、一个堆栈段、若干数据 段.TSS指明了任务的运行空间和任务的状态.在多任务系统中,TSS 还提供了连接任务的机制.
第二章 80X86微处理器
(2)1110010001010011 + 1100010101110010 1010100111000101 OF=0 SF=1 ZF=0 AF=0 PF=1 CF=1
7
实模式下的存储器地址空间
在实模式下存储器的地址空间为1M字节单元, 其地址范围为00000H~FFFFFH。 实模式下的存储器地址空间被分为通用和专用两 种存储区。 从地址00000H~003FFH这第一个1024个字节单 元是专用的。这个存储区为中断向量表区,专门用 来存放256个中断服务程序的入口地址(也称中断向 量),每个入口地址占4个字节单元。 从地址FFFF0H~FFFFFH这16个字节单元保留给系 统的初始化代码。当处理器加电或复位(Reset)时, CPU执行的第一条指令就是起始于地址FFFF0H的。通 常是在FFFF0H处存放一条无条件转移指令,以转移到 系统程序的入口处。 通用区域用来存储一般的程序指令和数据。由图可 见,它的地址范围为00400H~FFFEFH。 8
例:指出80x86CPU执行如下指令后,标志寄存器中各状态 标志位的值: (1) MOV AX,32C5H (2) MOV AX,0E453H ADD AX,546AH ADD AX,0C572H
解 (1)0011001011000101 + 0101010001101010 1000011100101111 所以, OF=1 SF=1 ZF=0 AF=0 PF=0 CF=0
SS
SP
SP 高地址 (a) 空栈堆
栈底 (栈顶 栈顶 )
78H 56H 34H 12H
栈顶 SP 栈底
78H 56H 34H 12H
栈顶 栈底
(b) 压入:PUSH AX; AX=1234H 压入:
x86-1-32位x86处理器编程架构
x86-1-32位x86处理器编程架构x86(32位)-1-32位x86 处理器编程架构Intel 32 位处理器架构简称IA-32(Intel Architecture,32-bit)x86是指intel的86系列的CPU统称,⽐如说8086就是x86⾥⾯中的⼀款CPU。
IA-32,X86-32是指intel的32位CPU架构。
x86系列的处理器架构是从8086发展来的,是基于8086 的,具有延续性和兼容性。
所以x86系列的CPU都可以和8086CPU进⾏类⽐。
1.1 基本执⾏环境:1.1.1 地址空间:32 位的处理器有32根地址线,数据线的数量是32 根或者64根。
因此,它可以访问2的32次⽅(4GB)的内存地址空间,每次可以读写连续的4 字节或者8 字节,这称为双字(Double Word)或者4 字(Quad Word)访问。
1.1.2 寄存器:32位x86 CPU总共包含了8个通⽤寄存器,6个16位段寄存器,⼀个状态处理器EFLAGS和⼀个指令指针寄存器。
1.1.2.1 通⽤寄存器在16位CPU内,有8个通⽤寄存器AX、BX、CX、DX、SI、DI、 BP 和SP,其中,前4个还可以拆分成两个独⽴的8 位寄存器来⽤,即AH、AL、BH、BL、CH、CL、DH 和DL。
32 位处理器在16位处理器的基础上,扩展了这8 个通⽤寄存器的长度,使之达到32位。
其中这个32位相对于16位扩展的寄存器就在16位寄存器的名字上加了⼀个E,这个E就是Extend中⽂扩展的意思。
32 位通⽤寄存器的⾼16 位是不可独⽴使⽤的,但低16 位保持同16 位处理器的兼容性。
在任何时候它们都可以像在16位CPU⾥⼀样使⽤。
32位CPU是兼容16位CPU的,所以照样可以在32 位处理器上运⾏16 位处理器上的软件。
1.1.2.2 指令指针寄存器为了⽣成32 位物理地址,32 位处理器将IP寄存器扩展到了32 位,即EIP。
第3章80x86处理器
如假设当前(CS)=20A8H,(IP)=2008H,那么,下一条从内存 中读取的指令所在存储单元的物理地址为:20A8H10H+ 2008H=22A88H。
15
0
段内偏移地址
19
430
段 寄 存 器 0000段 地 址 左 移 4位
∑
19
0
20位 物 理 地 址
请大家注意理 解逻辑地址与 物理地址的概 念((cs):(ip)
Debug中使 用反汇编命 令得到的 addxy.exe程 序中变量在 内存中的存 放情况.
请大家注意理 解逻辑地址与 物理地址的概 念
运行ADDXY.asm
二.执行单元EU
执行单元EU不与系统外部直接相连,它的功 能只是负责执行指令。执行的指令从BIU的指令 队列缓冲器中直接得到,执行指令时若需要从存 储器或I/O端口读写操作数时,由EU向BIU发出 请求,再由BIU对存储器或I/O端口进行访问。
高速缓冲存储器Cache 的使用,大大减少了CPU读取指令
和操作数所需的时间,使CPU的执行速度显著提高。为了满足 微型计算机对存储器系统高速度、大容量、低成本的要求,目 前,微型计算机系统采用如图3.1所示的三级存储器组织结构, 即由高速缓冲存储器Cache、主存和外存组成。
微处理器 CPU
高速缓冲存储器 (Cache)
执行单元EU由下列部件组成:
1. 16位算术逻辑单元(ALU):进行算术和逻辑运算。 2. 16位标志寄存器FLAGS:存放CPU运算的状态和控制标志。 3. 数据暂存寄存器:暂存参加运算的数据 4. 通用寄存器:包括4个16位数据寄存器AX、BX、CX、DX和
学习要求
汇编语言-X86处理器架构-64位x86处理器
汇编语⾔-X86处理器架构-64位x86处理器64位x86-64处理器 针对所有使⽤x86-64指令集的64位处理器的基本架构细节。
包括Intel64和AMD64处理器。
具有以下基本特点: 1.向后兼容x86指令集 2.地址长度为64位,虚拟地址空间为2的64字节 3.可以使⽤64位通⽤寄存器 4.⽐x86-32多了8个通⽤寄存器 5.物理地址为48位,⽀持⾼达256TB的RAM 1 64位操作模式 intel64架构引⼊了IA-32e新模式,这个模式可以分为两个模式:兼容模式(compatibility mode)和64位模式(64-bit mode)。
兼容模式(compatibility mode): 在这个模式下16和32位应⽤程序不⽤重新进⾏编译就可以运⾏。
16位windows(win16)和DOS应⽤程序不能运⾏在win64位下。
64位模式(64-bit mode): 处理器执⾏的是64位线性地址空间的应⽤程序。
这个模式是64位Microsoftt Windows的原⽣模式 2 基本64位执⾏环境 64位模式和32位的主要区别: ⽐32位多8个通⽤寄存器,有16个通⽤寄存器 有8个浮点寄存器 1个64位状态标志寄存器RFLAGS(只采⽤低32位),32位的称为EFLAGS 1个64位指令指针寄存器RIP,32位的称为EIP 8个64位MMX寄存器 16个128位XMM寄存器(32位模式只有8个XMM寄存器) 2.1 通⽤寄存器 64位的通⽤寄存器可以访问8位,16位,32位和64位数据。
操作位可⽤寄存器64位RAX,RBX,RCX,RDX,RDI,RSI,RBP,RSP,R8,R9,R10,R11,R12,R13,R14,R1532位EAX,EBX,ECX,EDX,EDI,ESI,EBP,ESP,R8D,R9D,R10D,R11D,R12D,R13D,R14D,R15D16位AX,BX,CX,DX,DI,SI,BP,SP,R8W,R9W,R10W,R11W,R12W,R13W,R14W,R15W8位AL,BL,CL,DL,DIL,SIL,BPL,SPL,R8L,R9L......还有后缀把L改为R 2.2 细节处理 64位模式和32位的主要区别: ⽐32位多8个通⽤寄存器,有16个通⽤寄存器 有8个浮点寄存器 1个64位状态标志寄存器RFLAGS(只采⽤低32位),32位的称为EFLAGS 1个64位指令指针寄存器RIP,32位的称为EIP 8个64位MMX寄存器 16个128位XMM寄存器(32位模式只有8个XMM寄存器) 2.1 通⽤寄存器 64位的通⽤寄存器可以访问8位,16位,32位和64位数据。
第二章 80x86计算机组织
80x86汇编语言程序设计
1. 状态标志取值的一般规则
ZF(Zero Flag):零标志。若运算结果为0,则ZF = 1,否则 ZF = 0。
SF(Sign Flag):符号标志。若运算结果为负数,则SF = 1, 否则SF = 0。 CF(Carry Flag):进位标志。若加法时结果最高位向前有进 位或减法时最高位向前有借位,则CF = 1,否则CF = 0。 OF(Overflow Flag):溢出标志。若带符号数的运算结果超 出了补码表示的范围,则OF = 1,否则OF = 0。 AF(Auxiliary Carry Flag):辅助进位标志。若加法时结果 低4位向前有进位或减法时结果低4位向前有借位,则AF = 1,否 则AF = 0。 PF(Parity Flag):奇偶标志。若结果最低字节中1的个数为 偶数,则PF = 1,否则PF = 0。
80x86程序可以存取的最小数据单位是字节。例如,若要读取的位 数不足8位,则只能先读出一个完整字节,再屏蔽掉其它位。
字的存储采取“低字节在低地址,高字节在高地址,字的地址由低 地址表示”的小端方式,双字也类似。
要正确理解内存单元的地址和值,地址表示位置,值是相应位置处 的内容。同一地址既可以看作字节单元地址,也可以看作字甚至双字 单元地址,取决于具体的使用方式。
2013-1-20
80x86汇编语言程序设计
80x86 CPU有3种工作模式:实模式、保护模式和虚拟8086模 式。 在实模式下,段地址和偏移地址均为16位。20位物理地址由 16位段地址左移4位加16位偏移地址得到,只能寻址1MB的内存 空间,且每段≤64KB。 在实模式下,32位CPU下的程序可以使用32位寄存器和32位操 作数,但采用32位寄存器表示偏移地址时,只使用低16位,高 16位为0。CS:IP总是指向下一条要执行的指令,EIP的高16位为 0。SS:SP指向堆栈段的栈顶,ESP的高16位为0。 状态标志是CPU进行条件判断和控制程序执行流程的依据,最 常用的是4个:CF、OF、SF和ZF。其中,CF表示无符号溢出,OF 表示带符号溢出。
HDWX86寄存器详解-40页精选文档
寄存器目录[隐藏]寄存器定义寄存器用途数据寄存器寄存器分类英文名称:Register[编辑本段]寄存器定义寄存器是中央处理器内的组成部份。
寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。
在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。
在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。
寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个“8 位元寄存器”或“32 位元寄存器”。
寄存器现在都以寄存器档案的方式来实作,但是他们也可能使用单独的正反器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实作出来。
寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组。
更适当的是称他们为“架构寄存器”。
例如,x86 指令及定义八个 32 位元寄存器的集合,但一个实作x86 指令集的 CPU 可以包含比八个更多的寄存器。
寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。
[编辑本段]寄存器用途1.可将寄存器内的数据执行算术及逻辑运算;2.存于寄存器内的地址可用来指向内存的某个位置,即寻址;3.可以用来读写数据到电脑的周边设备。
[编辑本段]数据寄存器8086 有14个16位寄存器,这14个寄存器按其用途可分为(1)通用寄存器、(2)指令指针、(3)标志寄存器和(4)段寄存器等4类。
(1)通用寄存器有8个, 又可以分成2组,一组是数据寄存器(4个),另一组是指针寄存器及变址寄存器(4个).数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.BH&BL=BX(base):基址寄存器,常用于地址索引;CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&DL=DX(data):数据寄存器,常用于数据传递。
80X86CPU02
总线接口单元 BIU(Bus Interface Unit) 2、组成
• 段地址寄存器(CS、DS、ES、SS)。 • 16位指令指针寄存器IP。 • 地址加法器(形成20位物理地址), • 6字节(8086)或4字节(8088)的指 令队列,
• 状态标志位:
用来记录程序中运行结果的状态信息。
包括6位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。 CF 进位标志 CF=1:从最高有效位产生进位值。 CF=0:从最高有效位不产生进值。 PF 奇偶标志 PF=1: 结果操作数低8位中有偶数个1。 PF=0: 结果操作数低8位中有奇数个1。
8086/8088的编程结构分两部分: 1、总线接口单元 BIU(Bus Interface Unit)
2、执行部件
EU (Execution Unit)
8086 CPU的功能结构
总线接口单元 BIU(Bus Interface Unit)
1、功能:负责与 存储器、I/O 端口进行数据传送。 具体讲:
插组件(DIP)中。
结构特点:
(1) 内部结构 是16位的
(内部寄存器,内部运算部件,内部操作按 16位设计); (2) 外部数据总线16(8086)/8 (8088)位,能处理16位数据,也 能处理8位数据; (3) 汇编语言与8080/8085兼容,即能执行整套8080/8085的指令. 增加了许多16位操作指令; (4) 20条地址总线,直接寻址能力为220=1M字节; (5) 40条引线、双列直插式; (6) 单相时钟; (7) 电源为5V。 8088微处理器与8086微处理器的主要区别:对外的数据线只有8位,目的 是为了方便地与8位I/O接口芯片相兼容。
x86服务器
运维管理策略与工具
运维管理策略
运维管理工具
• 制定x86服务器的运维管理策略,包括服务器的监控、备
• 选择合适的运维管理工具,如监控系统、备份软件和故
份、恢复和故障处理等。
障诊断工具等,实现x86服务器的自动化运维管理。
• 考虑x86服务器的可用性、稳定性和安全性,制定合适的
用场景。
未来机遇
• x86服务器的发展为企业带来了新的机遇,如大数据分析、人工智能和物联网等领
域的应用,提高了企业的竞争力。
• x86服务器的发展为企业降低了运营成本,提高了企业的经济效益。
CREATE TOGETHER
谢谢观看
THANK YOU FOR WATCHING
DOCS
硬件配置与性能评估
硬件配置建议
性能评估方法
• 根据应用程序的性能需求,选择合适的处理器、内存、
• 使用性能测试工具,如基准测试软件(Benchmark)等,
存储和网络等硬件组件。
对x86服务器的性能进行评估。
• 考虑硬件的兼容性和扩展性,以保证x86服务器可以适应
• 评估x86服务器的CPU、内存、存储和网络等方面的性能,
虚拟化软件的选择与部署
虚拟化软件的选择
虚拟化软件的部署
• 根据企业的需求和预算,选择合适的虚拟化软件,如
• 根据企业的需求和架构,规划虚拟化软件的网络拓扑和
VMware、VirtualBox、KVM等。
部署方案。
• 考虑虚拟化软件的性能、稳定性和安全性,选择适合企
• 考虑虚拟化软件的安全配置和权限管理,保证虚拟化环
Unix操作系统
x86体系结构解析
分类:
1. 2. 3. 4. 5.
RAM——随机存储器。
特点:
1. 2. 3. 可以被读写存储器。 速度快。 断电不保存数据。 SRAM(Static RAM,静态随机存储器):没有刷新周期,由触发器 构成基本单元。速度快,用于高速缓冲存储器。 DRAM(Dynamic RAM,动态随机存储器):由一个晶体管和一 个电容器件构成。需要有规律的定时的进行刷新来稳定数据,主要 用于主存储。 SDRAM(Synchronous DRAM)同步DRAM:将RAM于CPU以同 样时钟频率进行控制,使RAM和CPU的外频同步,减少等待的时 间。 DDRAM(Double Data Rate SDRAM,双倍速率随机存储器): 双倍预取技术,差分输入技术,低电压技术。
种类:
1. 2.
3.
4.
BIOS(Basic Input/Output System)基本 输入输出系统
1. 开机自检:检查CPU和各个控制器的状态。 2. 初始化:针对内存,主板芯片组,显卡及 其周边装置初始化。 3. 记录系统设定值:提供各元件的基本设置, 如显示器,键盘, 处理器, 内存等。 4. 提供常驻程序库:提供操作系统或是应用 程序回调的中断常驻程序。 5. 加载操作系统:从存储装置中加载操作系 统到内存中。
带宽:32bit 兼容:8bit isa,16bit isa, 32bitEISA 针脚:98+ 100 工作电压:+5V, -5V,+12,-12V 时钟频率:8.33MHz
PCI(Peripheral Component Interconnect) 外部设备互连总线
Intel 推出的局部总线。 地址和数据数据线分时复用。 采用同步传送方式式和集中式总线总裁策 略。 有自动配置能力,(支持PNP) 中断共享。
IBM—PC(80x86)汇编语言与接口技术-第2章 80x86计算机组织
• 80386是1985年研制出的一个32位微处理器, 内部及外部数据总线均为32位,地址线也为32 位,因此它可处理4G(232)字节的物理存储 空间。
• 1989年Intel公司又研制出新一代的微处理器 80486,80486芯片内除了有一个与80386相同 结构的主处理器外,还集成了一个浮点处理部 件FPU以及一个8K字节的高速缓冲存储器 (cache),使80486的计算速度和总体性能比 80386有了明显的提高。
• Intel公司在1982年推出了80286微处理器,它仍 然是16位结构。80286的内部及外部数据总线都 是16位的,但它的地址线是24位的,可寻址16M 字节的存储空间。
80286有两种工作方式,即实模式和保护模式: 实模式与8086工作方式相同,但速度比8086快。
保护模式除了仍具有16M字节的存储器物理地址空 间外,她还能为每个任务提供1G字节的虚拟存储 器地址空间。保护方式把操作系统及各任务所分配 到的地址空间隔离开,避免程序之间的相互干扰, 保证系统在多任务环境下正常工作。
• 8086是1978年Intel公司推出的16位微处理器。
(1)8086有16位数据总线,处理器与外部传送数据 时,一次可传送16位二进制数。
(2)8086有20位地址总线,寻址空间提高到1M字节。
(3)8086采用了流水线技术,可以实现处理器的内 部操作与存储器或I/O接口之间的数据传送操作重叠 进行,从而提高了处理器的性能。
2.2 基于微处理器的 计算机系统的构成
硬件:
中央处理机 CPU
总线控制 逻辑 系 统 总 线
存储器
接口
...
接口
大容量 存储器
...
I/O设备
I/O子系统
80x86cpu寄存器介绍
80X86寄存器详解引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着80x86 CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍。
同时在这里说明一下,本篇博文介绍的算是比较详细的了,而且介绍的知识点也是比较多的,所以造成博文长度过长,如果有兴趣想了解这一块的话,还请自行斟酌好阅读比例,建议分3 次以上阅览。
读者定位本博文主要将介绍的是8086 CPU 中的寄存器,既然是8086 CPU 寄存器简介的话,自然,面向的是初级一些的读者,其中不会涉及太多难点,同时,所有的介绍,我也会尽可能的从基础开始,然后循序渐进的介绍,同时也会尽量的将知识点介绍详细,介绍的过程中也会涉及到一些汇编程序代码,当然,采用的是最简单的方式介绍而已,本篇博文也就是回顾一些基础知识,读者主要定位于想对8086 CPU 有所了解,希望对整个程序设计的底层有所了解的朋友,而且读者最好是拥有一定的计算机基础和汇编语言基础。
开头首先浅要介绍一下Intel CPU 的发展史吧:Intel CPU 系列,最初是4 位微处理器4004,然后到到8 位微处理器的8008 ,再到8 微微处理器8080,以及稍后的16 位微处理器8086,由8086 开始,Intel 进入现在所谓的x86 时代。
Intel 8086 为16 位CPU ,而因为在8086 之前的CPU 都是8 位CPU,这样也就造成了很多的外设也只支持8 位,因此Intel 紧接着就退出了8 位的8088 CPU,因此Intel 8088 也就可以看做是8086 的8 位版本;如果是但从汇编语言的角度上来说,8086 和8088 是没有区别的,即8086 上跑的程序可以不加修改的移植到8088 ,8088 上跑的程序也可以不加修改的移植到8086 上,当然,还是有些特殊的地方是不同的,而这些基本上在这里可以忽略掉,在8088 CPU 之后,Intel 又推出了80186 ,80286 ,这两款CPU 均是16 位CPU ,而对于80186 来说,其与8086 的区别可以简单的看做是80186 多了几条指令而已,而80286 则不同,80286 的地址总线数目有了变化,在8086 , 8088 , 80186 上,CPU 的地址总线都是20 根,即可最大寻址220 即达到1MB 的寻址能力,而对于80286 CPU 来说,其地址总线数目达到了24 根,从而最大寻址能力为224即16MB,由于支持更多的物理内存寻址,因此80286 便开始成为了多任务,多用户系统的核心。
x86中内存管理寄存器(GDTR、LDTR、IDTR和TR)
x86中内存管理寄存器收藏一、内存管理寄存器处理器提供了4个内存管理寄存器(GDTR、LDTR、IDTR和TR),用于指定内存分段管理所用系统表的基地址,如图4-2所示。
处理器为这些寄存器的加载和保存提供了特定的指令。
有关系统表的作用请参见4.2节"保护模式内存管理"中的详细说明。
(点击查看大图)图4-2 内存管理寄存器GDTR、LDTR、IDTR和TR都是段基址寄存器,这些段中含有分段机制的重要信息表。
GDTR、IDTR和LDTR用于寻址存放描述符表的段。
TR用于寻址一个特殊的任务状态段(Task State Segment,TSS)。
TSS中包含着当前执行任务的重要信息。
(1)全局描述符表寄存器GDTRGDTR寄存器中用于存放全局描述符表GDT的32位的线性基地址和16位的表限长值。
基地址指定GDT表中字节0在线性地址空间中的地址,表长度指明GDT表的字节长度值。
指令LGDT和SGDT分别用于加载和保存GDTR寄存器的内容。
在机器刚加电或处理器复位后,基地址被默认地设置为0,而长度值被设置成0xFFFF。
在保护模式初始化过程中必须给GDTR加载一个新值。
(2)中断描述符表寄存器IDTR与GDTR的作用类似,IDTR寄存器用于存放中断描述符表IDT的32位线性基地址和16位表长度值。
指令LIDT和SIDT分别用于加载和保存IDTR寄存器的内容。
在机器刚加电或处理器复位后,基地址被默认地设置为0,而长度值被设置成0xFFFF。
(3)局部描述符表寄存器LDTRLDTR寄存器中用于存放局部描述符表LDT的32位线性基地址、16位段限长和描述符属性值。
指令LLDT和SLDT分别用于加载和保存LDTR寄存器的段描述符部分。
包含LDT表的段必须在GDT表中有一个段描述符项。
当使用LLDT指令把含有LDT表段的选择符加载进LDTR时,LDT段描述符的段基地址、段限长度以及描述符属性会被自动地加载到LDTR中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3 8086/8088CPU的寄存器组织 3.3 8086/8088CPU的寄存器组织控制标志用来控制CPU的操作特征(运行状态) DF(Direction Flag 方向控制标志。
STD;DF=1 可由指令置1/清0 CLD;DF=0 在进行字符串操作时,CPU每执行一条串操作指令,对源或(与目的操作数的地址会自动进行一次调整,其调整准则为 DF= 0,自动递增。
1,自动递减。
3.3 8086/8088CPU的寄存器组织 3.3 8086/8088CPU的寄存器组织 IF(Interrupt Enable Flag 外部可屏蔽中断允许标志。
可由指令置1/清0: STI;IF=1,CPU处于开中断状态。
CLI;IF=0,CPU处于关中断状态。
当IF= 1时,CPU能响应外部可屏蔽中断请求; 0时,CPU不能响应外部可屏蔽中断请求。
IF对外部非可屏蔽中断请求以及CPU内部的中断不起作用.
3.3 8086/8088CPU的寄存器组织 3.3 8086/8088CPU的寄存器组织 TF(Trap Flag 陷井标志。
没有专门的置1/清0指令。
当TF=1时,CPU每执行完一条指令便自动产生一个内部中断(类型为1,转去执行一个中断服务程序,用户可以借助中断服务程序来检查每条指令执行的情况,称为单步工作方式,常用于程序的调试。