第二章BMPC计算机组织 21计算机系统概述 计算机系统包括硬件和软件两大部分 硬件:三个主要组成部分,用系统总线连接 存储器 中央处理机 总线控制 大容量 接口 CPU 逻辑 存储器 接 I/O设备 I/O子系统
第二章 IBM PC计算机组织 2.1 计算机系统概述 计算机系统包括硬件和软件两大部分。 硬件:三个主要组成部分,用系统总线连接。 中央处理机 CPU 总线控制 逻辑 接 口 接 口 存储器 大容量 存储器 I/O设备 I/O子系统 系 统 总 线
IBM PC 1981年推出 CPU采用芯片8088,机器字长16位, 数据线8根,地址线20根 IM RAM, 40K ROM 软件: 系统软件(核心是操作系统OS) MASMEXE TASMEXE LINKEXE TLINK EXE DEBUGEXE 用户软件
软件: 系统软件(核心是操作系统OS) MASM.EXE TASM.EXE LINK.EXE TLINK.EXE DEBUG.EXE 用户软件 1981年推出 CPU采用芯片8088,机器字长16位, 数据线8根,地址线20根, 1M RAM, 40K ROM IBM PC
22微处理器的结构 IBM PO机的CPU组成: 算术逻辑部件ALU 控制逻辑 工作寄存器 8086/8088的寄存器组(14个寄存器) ∽数据寄存器(4个通用寄存器) 指针及变址寄存器 段寄存器 控制寄存器
2.2 微处理器的结构 IBM PC机的CPU组成: 8086/8088的寄存器组(14个寄存器): 数据寄存器(4个通用寄存器) 指针及变址寄存器 段寄存器 控制寄存器 算术逻辑部件ALU 控制逻辑 工作寄存器
数据寄存器 AX AH AL BX BH: EL CX CH 控制器 DX DH DL I 指针及变址寄存器段寄存器 S P C s B P D S ALU S I SS DI E S FLAGS I P 图2.2:8086处理器功能框图
图2.2:8086处理器功能框图
数据寄存器 功能:存放操作数或运算结果等信息 组成:AX:AH+AL-一累加器 X:字操作寄存器(16位 BX: BH+BI 基址寄存器 CX: CH+CI 计数器 ABCDABCD BH或B凡为字节操作寄存 D器(8位) DX:DH+DL--数据寄存器 该寄存器组既可作16位寄存器(AX,BX,CX,DX),又可作按高 8位和低8位作8位寄存器使用。即如 AX 字寄存器 AH AL 15 0低字节(8位) 高字节(8位) 字节寄存器
功能:存放操作数或运算结果等信息 组成:AX:AH+AL--累加器 BX:BH+BL--基址寄存器 CX:CH+CL--计数器 DX:DH+DL--数据寄存器 A B C D A B C D X:字操作寄存器(16位) H或 A B C D L为字节操作寄存 器(8位) 该寄存器组既可作16位寄存器(AX,BX,CX,DX),又可作按高 8位和低8位作8位寄存器使用。即如: AH AL AX 15 7 0 字寄存器 低字节(8位) 高字节(8位) 字节寄存器 数据寄存器
指针及变址寄存器 功能:存放操作数的偏移地址 组成:5个16位寄存器组成 SI:源变址寄存器 DI:目的变址寄存器 SP:栈顶地址寄存器(相对于SS是偏移地址):SP是栈顶指针 BP:对堆栈操作的基址寄存器 Bx:变址器 由于操作数的偏移地址只能用16位二进制数表示,因此 SI,DI,SP,BP都是16位寄存器,而不能作8位寄存器使用 说可 (1)仅SI,DI,BX,BP能作基址或变址寄存器,SI,D作变址器,BX,BP 作变址器又作基址器 (2)SI,DI,B作乍数据寄存器使用时,用來保存操作数和运算结果,只 能作16位字寄存器而不是8位寄存器
功能:存放操作数的偏移地址 组成:5个16位寄存器组成: SI:源变址寄存器 DI:目的变址寄存器 SP:栈顶地址寄存器(相对于SS是偏移地址):SP是栈顶指针 BP:对堆栈操作的基址寄存器 BX:变址器 由于操作数的偏移地址只能用16位二进制数表示,因此: SI,DI,SP,BP都是16位寄存器,而不能作8位寄存器使用。 说明: (1)仅SI,DI,BX,BP能作基址或变址寄存器,SI,DI作变址器,BX,BP 作变址器又作基址器 (2)SI,DI,BP作数据寄存器使用时,用来保存操作数和运算结果,只 能作16位字寄存器而不是8位寄存器。 指针及变址寄存器
段寄存器 IBM PC中有4个专门存放段地址的段寄存器(16位) 代码段寄存器CS0200H 数据段寄存器DS0400 存储器 堆栈段寄存器SS0480H 02000H 附加段寄存器ES 8K代码 04000H 2K数据 例:(DS)=3000H,EA=1234H 256堆栈0480 物理地址=16d×(DS)+EA 31234H
IBM PC中有4个专门存放段地址的段寄存器(16位) 代码段寄存器 CS 数据段寄存器 DS 堆栈段寄存器 SS 附加段寄存器 ES 例:(DS)=3000H, EA=1234H, 物理地址=16d (DS) + EA =31234H 存储器 8K代码 2K数据 256堆栈 02000H 04800H 04000H 0200H 0400H 0480H 段寄存器
控制寄存器 IP指令指针寄存器(存放代码段中的偏移地址, 始终指向下一条指令的首地址) 标志寄存器 FLAGS:包含了9个标志位,由6个状态标 志位和3个控制标志位构成,主要用于反映处理器的状 态和运算结果的某些特征。各标志位在标志寄存器中的 位置如下所示: 1514131211109876543210 □I型□姻□c
IP 指令指针寄存器(存放代码段中的偏移地址, 始终指向下一条指令的首地址) 标志寄存器 FLAGS:包含了9个标志位,由6个状态标 志位和3个控制标志位构成,主要用于反映处理器的状 态和运算结果的某些特征。各标志位在标志寄存器中的 位置如下所示: 控制寄存器
1.进位位CF (CF)=1:当结果最高位(字节第七位,字第15位)产生一个 进位和错位 0:不产生进位或借位 溢出位OF (OF)=1:有溢出,运算结果超过了范围 如:带符号数:字节:-128-127D 32768-32767 0:无溢出 注意:滋出与进位两个概念是不同的。 例如 01100100=[+100补=64H +为+200D超出+127 +01100100=[+100]补=64H 11001000 两个正数相加变成了负数故溢出 则(OF)=1,(CF=0,称为无进位的溢出
1.进位位CF (CF)= 1:当结果最高位(字节第七位,字第15位)产生一个 进位和错位 0:不产生进位或借位 2.溢出位OF (OF)= 1:有溢出,运算结果超过了范围 如:带符号数:字节:-128-127D 字:-32768-32767 0:无溢出 注意:溢出与进位两个概念是不同的。 例如: 01100100 +01100100 11001000 =[+100]补=64H =[+100]补=64H +为+200D超出+127 两个正数相加变成了负数故溢出 则(OF)=1,(CF)=0,称为无进位的溢出
又例如:101010110ABH=[-55H补=85 +后为86 +1111110FFH[-1]补=-1 /101010100AAH=[-56H补=86 CF 则:无溢出但有进位位:(0F)=0,(CF)=1 3.符号标志位SF (SF)=(1:最高位为1:负数 0:最高位为0:正数 4.零标志位ZF (ZF)=门1:运算结果为0 0:运算结果不为0 5.辅助进位标志位AF (AF)千1:字节 字 有进位或借位 0 0
又例如:10101011 +11111111 10101010 CF 1 0ABH=[-55H]补=-85 0FFH=[-1]补=-1 0AAH=[-56H]补=-86 +后为-86 则:无溢出但有进位位:(OF)=0,(CF)=1 3.符号标志位SF (SF)= 1:最高位为1:负数 0:最高位为0:正数 4.零标志位ZF (ZF)= 1:运算结果为0 0:运算结果不为0 5.辅助进位标志位AF (AF)= 1: 字节 字 0 … … 7 4 3 0 有进位或借位 15 8 7 0